- 01 Mar, 2016 8 commits
-
-
Martin Möhrmann authored
Use only reflect.TypeOf to detect if argument is a string. The wasString return is only needed in doPrint with the 'v' verb. This type of string detection is handled correctly by reflect.TypeOf which is used already in doPrint for identifying a string argument. Remove now obsolete wasString computations and return values. Change-Id: Iea2de7ac0f5c536a53eec63f7e679d628f5af8dc Reviewed-on: https://go-review.googlesource.com/19976 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Matthew Dempsky authored
Updates #13940. Change-Id: I41974c292dd981d82ac03b9b8b406713445362c3 Reviewed-on: https://go-review.googlesource.com/20081 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Change-Id: I99c737415a082df883a9c12cdb43bdd5a1b9a8ad Reviewed-on: https://go-review.googlesource.com/20082Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Also, relocate related const and type definitions from go.go. Change-Id: Ieb9b672da8dd510ca67022b4f7ae49a778a56579 Reviewed-on: https://go-review.googlesource.com/20080 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dave Cheney <dave@cheney.net> Reviewed-by: Keith Randall <khr@golang.org>
-
Matthew Dempsky authored
Change-Id: I2d8efef333f2441da6742e125e23ff57c9853ebd Reviewed-on: https://go-review.googlesource.com/20078 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Matthew Dempsky authored
Change-Id: I42f370b987fcc85201f7aaa055b9e58ee9b9a99e Reviewed-on: https://go-review.googlesource.com/20079 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
nwidger authored
Fixes #14371 Change-Id: I8e9e4b2b89083f5a947e791c011912fdf365a11e Reviewed-on: https://go-review.googlesource.com/19996Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Ian Lance Taylor authored
Fixes #14570. Change-Id: Ief84a14585bfc209e38cdf15702c2f54ba759714 Reviewed-on: https://go-review.googlesource.com/20057 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
- 29 Feb, 2016 16 commits
-
-
Shahar Kohanim authored
In best of 10, linking cmd/go shows a ~10% improvement. tip: real 0m1.152s user 0m1.005s this: real 0m1.065s user 0m0.924s Change-Id: I303a20b94332feaedc1033c453247a0e4c05c843 Reviewed-on: https://go-review.googlesource.com/19978Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
David Crawshaw authored
The object file reader in cmd/link reads the symbol name into a scratch []byte, converts it to a string, and then does a substring replacement. Instead, this CL does the replacement on the []byte into the scratch space and then creates the final string. Linking godoc without DWARF, best of ten, shows a ~10% improvement. tip: real 0m1.099s user 0m1.541s this: real 0m0.990s user 0m1.280s This is part of an attempt to make suffixarray string deduping come out as a wash, but it's not there yet: cl/19987: real 0m1.335s user 0m1.794s cl/19987+this: real 0m1.225s user 0m1.540s Change-Id: Idf061fdfbd7f08aa3a1f5933d3f111fdd1659210 Reviewed-on: https://go-review.googlesource.com/20025Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David Crawshaw authored
The Cpos function is used frequently (at least once per symbol) and it is implemented with the seek syscall. Instead, track current output offset and use it. Building the godoc binary with DWARF, best of ten: tip: real 0m1.287s user 0m1.573s this: real 0m1.208s user 0m1.555s Change-Id: I068148695cd6b4d32cd145db25e59e6f6bae6945 Reviewed-on: https://go-review.googlesource.com/20055 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
Change-Id: Ib0dd458d4ab1c58a2baf36491e288ac32e2ff99e Reviewed-on: https://go-review.googlesource.com/19962Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
Reduces number of memory allocations by 12%: Before: 1816664 After: 1581591 Small speed improvement. Change-Id: I61281fb852e8e31851a350e3ae756676705024a4 Reviewed-on: https://go-review.googlesource.com/20027Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Update #14559. Change-Id: I92603602e5d0a5fcae43f3084f234ff606447190 Reviewed-on: https://go-review.googlesource.com/20056 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shahar Kohanim authored
Reduces best of 10 linking of cmd/go by ~5% Change-Id: If673b877ee12595dae517d7eb48430451e5cadba Reviewed-on: https://go-review.googlesource.com/20060Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shahar Kohanim authored
Preallocate ~2MB for Lsym map (size calculation from http://play.golang.org/p/9L7F5naXRr). Reduces best of 10 link time of cmd/go by ~4%. On cmd/go max resident size unaffected, on println hello world max resident size grows by 4mb from 18mb->22mb. Performance improves in both cases. tip: real 0m1.283s user 0m1.502s sys 0m0.144s this: real 0m1.341s user 0m1.598s sys 0m0.136s Change-Id: I4a95e45fe552f1f64f53e868421b9f45a34f8b96 Reviewed-on: https://go-review.googlesource.com/19979 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Benoit Sigoure authored
In golang.org/cl/14449 the `getdents' system call got changed to use _SYS_getdents as a layer of indirection instead of SYS_GETDENTS64 for compatibility with mips64, but this broke mksyscall.pl, which then died with with: syscall_linux.go:840: malformed //sys declaration Change-Id: Icb61965d8730f6e81f9fb0fa28c7bab635470f09 Reviewed-on: https://go-review.googlesource.com/20051Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Update #14559. Change-Id: I8894f8e16902685f55a21d902199fbe0905f0558 Reviewed-on: https://go-review.googlesource.com/20050 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
-
Brad Fitzpatrick authored
Named returned values should only be used on public funcs and methods when it contributes to the documentation. Named return values should not be used if they're only saving the programmer a few lines of code inside the body of the function, especially if that means there's stutter in the documentation or it was only there so the programmer could use a naked return statement. (Naked returns should not be used except in very small functions) This change is a manual audit & cleanup of public func signatures. Signatures were not changed if: * the func was private (wouldn't be in public godoc) * the documentation referenced it * the named return value was an interesting name. (i.e. it wasn't simply stutter, repeating the name of the type) There should be no changes in behavior. (At least: none intended) Change-Id: I3472ef49619678fe786e5e0994bdf2d9de76d109 Reviewed-on: https://go-review.googlesource.com/20024 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Shenghou Ma authored
Fixes #14557. Change-Id: I9610b79aafe9c15f9c998739b586fd0b41b90d70 Reviewed-on: https://go-review.googlesource.com/20031Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Mostly renaming variables for clarity. Passes toolstash -cmp. Change-Id: I9867137c34c14985cbbbdb2d34fbbe4cc65cb6fb Reviewed-on: https://go-review.googlesource.com/20023Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
Passes toolstash -cmp. Casual timings show about a 3% improvement in compile times. Update #14473. Change-Id: I584add2e8f1a52486ba418b25ba6122b7347b643 Reviewed-on: https://go-review.googlesource.com/19989Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Martin Möhrmann authored
Do not replace the sign in front of a number with a space if both f.space and f.plus are both specified for number formatting. This was already the case for integers but not for floats and complex numbers. Updates: #14543. Change-Id: I07ddeb505003db84a8a7d2c743dc19fc427a00bd Reviewed-on: https://go-review.googlesource.com/19974 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Ian Lance Taylor authored
Besides being more efficient in a large build, this avoids a possible race when creating the input file. Change-Id: Ifc2cb055925a76be9c90eac56d84ebd9e14f2bbc Reviewed-on: https://go-review.googlesource.com/19392Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
- 28 Feb, 2016 10 commits
-
-
Tamir Duberstein authored
This is minor cleanup that reduces test output noise. Change-Id: Ib6db4daf8cb67b7784b2d5b222fa37c7f78a6a04 Reviewed-on: https://go-review.googlesource.com/19997Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Tamir Duberstein authored
This is minor cleanup that makes the tests more readable. Change-Id: I9f1f98f0f035096c284bdf3501e7520517a3e4d9 Reviewed-on: https://go-review.googlesource.com/19993Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Justin Nuß authored
Found this while reading through the code. The benchmark accidently called the wrong function. Change-Id: Idb88aa71e7098a4e29e7f5f39e64f8c5f8936a2a Reviewed-on: https://go-review.googlesource.com/19977Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Joe Tsai authored
Motivation: * Previously, the size of the compressed data was used for metrics, rather than the uncompressed size. This causes the library to appear to perform poorly relative to C or other implementation. Switch it to use the uncompressed size so that it matches how decompression benchmarks are usually done (like in compress/flate). This also makes it easier to compare bzip2 rates to other algorithms since they measure performance in this way. * Also, reset the timer after doing initialization work. Change-Id: I32112c2ee8e7391e658c9cf31039f70a689d9b9d Reviewed-on: https://go-review.googlesource.com/17611Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Joe Tsai authored
The bzip2 block size is a multiple of 100*1000 not 100*1024. Thus, the bzip2 decoder would incorrectly decode files with larger block sizes when it should have otherwise failed. Fortunately, we can correct this in a backwards compatible way since Go has no implementation of a bzip2 encoder to produce bad blocks :) To confirm that the C bzip2 utlity chokes on this data: $ echo "425a683131415926535936dc55330063ffc0006000200020a40830008b00 08b8bb9229c28481b6e2a998" | xxd -r -p | bzip2 -d bzip2: Data integrity error when decompressing. Fixes #13941 Change-Id: I2402e8829a8027ef94dd4fac050b200440a3d4e4 Reviewed-on: https://go-review.googlesource.com/20011 Run-TryBot: Joe Tsai <joetsai@digital-static.net> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Joe Tsai authored
The LZ77 portion of DEFLATE is relatively self-contained. For the decompression side of things, we extract this logic out for the following reasons: * It is easier to test just the LZ77 portion of the logic. * It reduces the noise in the inflate.go Also, we adjust the way that callbacks are handled in the inflate. Instead of using functions to abstract the logical componets of huffmanBlock(), use goto statements to jump between the necessary sections. This is faster since it avoids a function call and is arguably more readable. benchmark old MB/s new MB/s speedup BenchmarkDecodeDigitsSpeed1e4-4 53.62 60.11 1.12x BenchmarkDecodeDigitsSpeed1e5-4 61.90 69.07 1.12x BenchmarkDecodeDigitsSpeed1e6-4 63.24 70.58 1.12x BenchmarkDecodeDigitsDefault1e4-4 54.10 59.00 1.09x BenchmarkDecodeDigitsDefault1e5-4 69.50 74.07 1.07x BenchmarkDecodeDigitsDefault1e6-4 71.54 75.85 1.06x BenchmarkDecodeDigitsCompress1e4-4 54.39 58.94 1.08x BenchmarkDecodeDigitsCompress1e5-4 69.21 73.96 1.07x BenchmarkDecodeDigitsCompress1e6-4 71.14 75.75 1.06x BenchmarkDecodeTwainSpeed1e4-4 53.15 58.13 1.09x BenchmarkDecodeTwainSpeed1e5-4 66.56 72.29 1.09x BenchmarkDecodeTwainSpeed1e6-4 69.13 75.11 1.09x BenchmarkDecodeTwainDefault1e4-4 56.00 60.23 1.08x BenchmarkDecodeTwainDefault1e5-4 77.84 82.27 1.06x BenchmarkDecodeTwainDefault1e6-4 82.07 86.85 1.06x BenchmarkDecodeTwainCompress1e4-4 56.13 60.38 1.08x BenchmarkDecodeTwainCompress1e5-4 78.23 82.62 1.06x BenchmarkDecodeTwainCompress1e6-4 82.38 86.73 1.05x Change-Id: I8c6ae0e6bed652dd0570fc113c999977f5e71636 Reviewed-on: https://go-review.googlesource.com/16528Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Caio Marcelo de Oliveira Filho authored
Moves the implementation of RunBenchmarks to a non-exported function that returns whether the execution was OK, and uses that to identify failure in benchmarks.The exported function is kept for compatibility. Like before, benchmarks will only be executed if tests and examples pass. The PASS message will not be printed if there was a failure in a benchmark. Example output BenchmarkThatCallsFatal-8 --- FAIL: BenchmarkThatCallsFatal-8 x_test.go:6: called by benchmark FAIL exit status 1 FAIL _/.../src/cmd/go/testdata/src/benchfatal 0.009s Fixes #14307. Change-Id: I6f3ddadc7da8a250763168cc099ae8b325a79602 Reviewed-on: https://go-review.googlesource.com/19889Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
When Go code is used with C code compiled with -fsanitize=thread, adds thread sanitizer calls so that correctly synchronized Go code does not cause spurious failure reports from the thread sanitizer. This may cause some false negatives, but for the thread sanitizer what is most important is avoiding false positives. Change-Id: If670e4a6f2874c7a2be2ff7db8728c6036340a52 Reviewed-on: https://go-review.googlesource.com/17421Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
-
kortschak authored
Change-Id: If03185a21e088c9b383a82c14d649805f00c8042 Reviewed-on: https://go-review.googlesource.com/20000Reviewed-by: Minux Ma <minux@golang.org>
-
Austin Clements authored
Commit a5c3bbe0 modified adjustpointers to use *uintptrs instead of *unsafe.Pointers for manipulating stack pointers for clarity and to eliminate the unnecessary write barrier when writing the updated stack pointer. This commit makes the equivalent change to adjustpointer. Change-Id: I6dc309590b298bdd86ecdc9737db848d6786c3f7 Reviewed-on: https://go-review.googlesource.com/17148Reviewed-by: Rick Hudson <rlh@golang.org> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 27 Feb, 2016 6 commits
-
-
Ian Lance Taylor authored
Fixes #14483. Change-Id: I0cddfe27fd8d00ba85659d0b618410e39ebf45cb Reviewed-on: https://go-review.googlesource.com/19860Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Update #14473. Change-Id: Iba1ecf42d9ab5a93144941439d5cc6b0b4f4a3ac Reviewed-on: https://go-review.googlesource.com/19992Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Martin Möhrmann authored
Once upon a time fmt did use bytes.Buffer for its buffer. The buffer write methods still mimic the bytes.Buffer signatures. The current code depends on manipulating the buffer []bytes array directly which makes going back to bytes.Buffer by only changing the type of buffer impossible. Since type buffer is not exported the methods can be simplified to the needs of fmt. This saves space and avoids unnecessary overhead. Use WriteString instead of Write for known inputs since WriteString is faster than Write to append the same data. This also saves space in the binary. Remove the add method from Printer and depending on the data to be written use WriteRune or WriteByte directly instead. In total makes the go binary around 4 kilobyte smaller. name old time/op new time/op delta SprintfEmpty-2 24.1ns ± 3% 23.8ns ± 1% -1.14% (p=0.000 n=20+20) SprintfString-2 114ns ± 2% 114ns ± 4% ~ (p=0.558 n=20+19) SprintfInt-2 116ns ± 9% 118ns ± 7% ~ (p=0.086 n=20+20) SprintfIntInt-2 195ns ± 6% 193ns ± 5% ~ (p=0.345 n=20+19) SprintfPrefixedInt-2 251ns ±16% 241ns ± 9% -3.69% (p=0.024 n=20+19) SprintfFloat-2 203ns ± 4% 205ns ± 5% ~ (p=0.153 n=20+20) SprintfBoolean-2 101ns ± 7% 96ns ±11% -5.23% (p=0.005 n=19+20) ManyArgs-2 651ns ± 7% 628ns ± 7% -3.44% (p=0.002 n=20+20) FprintInt-2 164ns ± 2% 158ns ± 2% -3.62% (p=0.000 n=20+18) FprintfBytes-2 215ns ± 1% 216ns ± 1% +0.58% (p=0.000 n=20+20) FprintIntNoAlloc-2 115ns ± 0% 112ns ± 0% -2.61% (p=0.000 n=20+20) ScanInts-2 700µs ± 0% 702µs ± 1% +0.38% (p=0.000 n=18+20) ScanRecursiveInt-2 82.7ms ± 0% 82.7ms ± 0% ~ (p=0.820 n=20+20) Change-Id: I0409eb170b8a26d9f4eb271f6292e5d39faf2d8b Reviewed-on: https://go-review.googlesource.com/19955Reviewed-by: Rob Pike <r@golang.org>
-
Justin Nuß authored
The current implementations of the AppendQuote functions use quoteWith (through Quote) for quoting the given value and appends the returned string to the dst byte slice. quoteWith internally creates a byte slice on each call which gets converted to a string in Quote. This means the AppendQuote functions always allocates a new byte slice and a string only to append them to an existing byte slice. In the case of (Append)QuoteRune the string passed to quoteWith will also needs to be allocated from a rune first. Split quoteWith into two functions (quoteWith and appendQuotedWith) and replace the call to Quote inside AppendQuote with appendQuotedWith, which appends directly to the byte slice passed to AppendQuote and also avoids the []byte->string conversion. Also introduce the 2 functions quoteRuneWith and appendQuotedRuneWith that work the same way as quoteWith and appendQuotedWith, but take a single rune instead of a string, to avoid allocating a new string when appending a single rune, and use them in (Append)QuoteRune. Also update the ToASCII and ToGraphic variants to use the new functions. Benchmark results: benchmark old ns/op new ns/op delta BenchmarkQuote-8 428 503 +17.52% BenchmarkQuoteRune-8 148 105 -29.05% BenchmarkAppendQuote-8 435 307 -29.43% BenchmarkAppendQuoteRune-8 158 23.5 -85.13% benchmark old allocs new allocs delta BenchmarkQuote-8 3 3 +0.00% BenchmarkQuoteRune-8 3 2 -33.33% BenchmarkAppendQuote-8 3 0 -100.00% BenchmarkAppendQuoteRune-8 3 0 -100.00% benchmark old bytes new bytes delta BenchmarkQuote-8 144 144 +0.00% BenchmarkQuoteRune-8 16 16 +0.00% BenchmarkAppendQuote-8 144 0 -100.00% BenchmarkAppendQuoteRune-8 16 0 -100.00% Change-Id: I77c148d5c7242f1b0edbbeeea184878abb51a522 Reviewed-on: https://go-review.googlesource.com/18962 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Mikio Hara authored
This is a followup change to #13111 for filtering out IPv6 literals and absolute FQDNs from being as the SNI values. Updates #13111. Fixes #14404. Change-Id: I09ab8d2a9153d9a92147e57ca141f2e97ddcef6e Reviewed-on: https://go-review.googlesource.com/19704Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Martin Möhrmann authored
Move the decision if zero padding is allowed to doPrintf where the other formatting decisions are made. Removes some dead code for negative f.wid that was never used due to f.wid always being positive and f.minus deciding if left or right padding should be used. New padding code writes directly into the buffer and is as fast as the old version but avoids the cost of needing package init. name old time/op new time/op delta SprintfPadding-2 246ns ± 5% 245ns ± 4% ~ (p=0.345 n=50+47) Change-Id: I7dfddbac8e328f4ef0cdee8fafc0d06c784b2711 Reviewed-on: https://go-review.googlesource.com/19957 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-