- 05 Jan, 2018 3 commits
-
-
Kirill Smelkov authored
When comparing 2 files, benchstat skips rows that are not present in both benchmarks. However currently when benchstat'ing just 1 file or 3 or more, benchstat dumps every row for every unit, even if row results for the unit are completely empty. When several units are in use, this creates a lot of noise of empty benchmark lines output. For example for the following benchmark ``` BenchmarkTwoHourMarathon 1 7200000000000 ns/op 14400000000000 user-ns/op 5 ns/GC 12 quick-bytes BenchmarkTwoHourMarathon 1 7200000000000 ns/op 14500000000000 user-ns/op 5 ns/GC 16 quick-bytes BenchmarkTwoHourMarathon 1 7200000000000 ns/op 14600000000000 user-ns/op 5 ns/GC 12 quick-bytes BenchmarkTwoHourMarathon 1 7200000000000 ns/op 14200000000000 user-ns/op 5 ns/GC 16 quick-bytes BenchmarkTwoHourMarathon 1 7200000000000 ns/op 14300000000000 user-ns/op 5 ns/GC 12 quick-bytes BenchmarkTimens 1 31 ns/op 21 user-ns/op BenchmarkTimeμs 1 32 μs/op 22 user-μs/op # mu = U+03bc BenchmarkTimeµs 1 33 µs/op 23 user-µs/op # mu = U+b5 BenchmarkTimeus 1 34 us/op 24 user-us/op BenchmarkTimems 1 35 ms/op 25 user-ms/op BenchmarkTimes 1 36 s/op 26 user-s/op BenchmarkTimeObjectns 1 41 ns/object BenchmarkTimeObjectµs 1 42 µs/object BenchmarkTimeObjectus 1 43 us/object BenchmarkTimeObjectms 1 44 ms/object BenchmarkTimeObjects 1 45 s/object ``` current output is ``` name time/op TwoHourMarathon 7200s ± 0% Timens 31.0ns ± 0% Timeμs 32.0µs ± 0% Timeµs 33.0µs ± 0% Timeus 34.0µs ± 0% Timems 35.0ms ± 0% Times 36.0s ± 0% TimeObjectns TimeObjectµs TimeObjectus TimeObjectms TimeObjects name user-time/op TwoHourMarathon 14400s ± 1% Timens 21.0ns ± 0% Timeμs 22.0µs ± 0% Timeµs 23.0µs ± 0% Timeus 24.0µs ± 0% Timems 25.0ms ± 0% Times 26.0s ± 0% TimeObjectns TimeObjectµs TimeObjectus TimeObjectms TimeObjects name time/GC TwoHourMarathon 5.00ns ± 0% Timens Timeμs Timeµs Timeus Timems Times TimeObjectns TimeObjectµs TimeObjectus TimeObjectms TimeObjects name quick-bytes TwoHourMarathon 13.6B ±18% Timens Timeμs Timeµs Timeus Timems Times TimeObjectns TimeObjectµs TimeObjectus TimeObjectms TimeObjects name time/object TwoHourMarathon Timens Timeμs Timeµs Timeus Timems Times TimeObjectns 41.0ns ± 0% TimeObjectµs 42.0µs ± 0% TimeObjectus 43.0µs ± 0% TimeObjectms 44.0ms ± 0% TimeObjects 45.0s ± 0% ``` and it becomes ``` name time/op TwoHourMarathon 7200s ± 0% Timens 31.0ns ± 0% Timeμs 32.0µs ± 0% Timeµs 33.0µs ± 0% Timeus 34.0µs ± 0% Timems 35.0ms ± 0% Times 36.0s ± 0% name user-time/op TwoHourMarathon 14400s ± 1% Timens 21.0ns ± 0% Timeμs 22.0µs ± 0% Timeµs 23.0µs ± 0% Timeus 24.0µs ± 0% Timems 25.0ms ± 0% Times 26.0s ± 0% name time/GC TwoHourMarathon 5.00ns ± 0% name quick-bytes TwoHourMarathon 13.6B ±18% name time/object TimeObjectns 41.0ns ± 0% TimeObjectµs 42.0µs ± 0% TimeObjectus 43.0µs ± 0% TimeObjectms 44.0ms ± 0% TimeObjects 45.0s ± 0% ``` after this patch. Change-Id: Ic260e39913af7b2c3aa1ff850aed65002d553d6c
-
Kirill Smelkov authored
For example in my testing I use "µs/object" https://lab.nexedi.com/kirr/neo/blob/8bac3dba/t/time/time-soct17-z6001.txt#L392 and in general anything with time unit in nominator represents just time. For the following benchmark data ``` BenchmarkTimeObjectns 1 41 ns/object BenchmarkTimeObjectµs 1 42 µs/object BenchmarkTimeObjectus 1 43 us/object BenchmarkTimeObjectms 1 44 ms/object BenchmarkTimeObjects 1 45 s/object ``` output before patch: ``` name ns/object TimeObjectns 41.0 ± 0% TimeObjectµs 42.0k ± 0% TimeObjectus 43.0k ± 0% TimeObjectms 44.0M ± 0% TimeObjects 45.0G ± 0% ``` output after patch: ``` name time/object TimeObjectns 41.0ns ± 0% TimeObjectµs 42.0µs ± 0% TimeObjectus 43.0µs ± 0% TimeObjectms 44.0ms ± 0% TimeObjects 45.0s ± 0% ``` Change-Id: I55f2331334828cf6632f675344d98846e7cdaf41
-
Kirill Smelkov authored
A bit of context: as part of benchmarking my server I first benchmark underlying disk and then also network RTT latency around serving machine to get idea about serving machine/network capabilities. Those benchmarks are done with standard tools like ioping, ping and lat_tcp (from lmbench) and then their output is amended with lines in Go benchmarking format via simple sed scripts: https://lab.nexedi.com/kirr/neo/blob/8bac3dba/go/neo/t/neotest#L857 https://lab.nexedi.com/kirr/neo/blob/8bac3dba/go/neo/t/neotest#L1023 https://lab.nexedi.com/kirr/neo/blob/8bac3dba/go/neo/t/neotest#L1063 For example original ioping output --- . (ext4 /dev/sda1) ioping statistics --- 18.0 k requests completed in 2.97 s, 70.2 MiB read, 6.06 k iops, 23.7 MiB/s generated 18.0 k requests in 3.00 s, 70.2 MiB, 5.99 k iops, 23.4 MiB/s min/avg/max/mdev = 123.2 us / 165.0 us / 225.8 us / 35.1 us becomes amended this way: --- . (ext4 /dev/sda1) ioping statistics --- 18.0 k requests completed in 2.97 s, 70.2 MiB read, 6.06 k iops, 23.7 MiB/s generated 18.0 k requests in 3.00 s, 70.2 MiB, 5.99 k iops, 23.4 MiB/s min/avg/max/mdev = 123.2 us / 165.0 us / 225.8 us / 35.1 us Benchmarkz6001/disk/randread/direct/4K-min 1 123.2 us/op Benchmarkz6001/disk/randread/direct/4K-avg 1 165.0 us/op ( https://lab.nexedi.com/kirr/neo/blob/8bac3dba/t/time/time-soct17-z6001-z600.txt#L105 ) Emitting lines in std Go benchmarking format allows to analyze whole benchmark run - software + environment - with tools like benchstat. However there is a problem: all those tools use different units. For example ping uses "ms": https://lab.nexedi.com/kirr/neo/blob/8bac3dba/t/time/time-soct17-z6001-z600.txt#L414 while ioping chooses unit dynamically depending on the value - "ns" for values under 1 microsecond, "us" for values under 1 millisecond, "ms" for values under 1 second, etc - see e.g. here: https://lab.nexedi.com/kirr/neo/blob/8bac3dba/t/time/time-soct17-z6001-z600.txt#L262 And without units normalization benchstat thinks all those "ns/op", "us/op" and "ms/op" are different units and dumps corresponding measurements in separate groups - for example even different ioping runs can land into different sections: name µs/op z6001/sha1/py/1024B 2.27 ± 1% z6001/sha1/go/1024B 2.35 ± 0% z6001/sha1/py/4096B 7.83 ± 0% z6001/sha1/go/4096B 9.37 ± 0% z600/sha1/py/1024B 2.25 ± 1% z600/sha1/go/1024B 2.36 ± 0% z600/sha1/py/4096B 7.82 ± 0% z600/sha1/go/4096B 9.38 ± 0% z6001-z600/tcprtt(c-c)/1B 50.0 ± 0% z6001-z600/tcprtt(c-go)/1B 56.4 ± 3% z600-z6001/tcprtt(c-c)/1B 50.0 ± 0% z600-z6001/tcprtt(c-go)/1B 56.0 ± 3% z6001-z600/tcprtt(c-c)/1400B 130 ± 0% z6001-z600/tcprtt(c-go)/1400B 135 ± 2% z600-z6001/tcprtt(c-c)/1400B 130 ± 0% z600-z6001/tcprtt(c-go)/1400B 135 ± 1% z6001-z600/tcprtt(c-c)/1500B 145 ± 0% z6001-z600/tcprtt(c-go)/1500B 156 ±10% z600-z6001/tcprtt(c-c)/1500B 145 ± 0% z600-z6001/tcprtt(c-go)/1500B 150 ± 0% z6001-z600/tcprtt(c-c)/4096B 185 ± 0% z6001-z600/tcprtt(c-go)/4096B 194 ± 6% z600-z6001/tcprtt(c-c)/4096B 185 ± 0% z600-z6001/tcprtt(c-go)/4096B 192 ± 1% name us/op z6001/disk/randread/direct/4K-min 123 ± 1% z6001/disk/randread/direct/4K-avg 164 ± 1% z6001/disk/randread/pagecache/4K-avg 1.22 ± 1% name time/op z6001/disk/randread/pagecache/4K-min 411ns ± 1% z6001/disk/randread/pagecache/4K-avg 949ns ± 0% name ms/op z6001-z600/pingrtt/16B-min 0.03 ± 0% z6001-z600/pingrtt/16B-avg 0.04 ± 0% z600-z6001/pingrtt/16B-min 0.03 ± 0% z600-z6001/pingrtt/16B-avg 0.04 ± 0% z6001-z600/pingrtt/1452B-min 0.11 ± 0% z6001-z600/pingrtt/1452B-avg 0.12 ± 0% z600-z6001/pingrtt/1452B-min 0.11 ± 0% z600-z6001/pingrtt/1452B-avg 0.12 ± 0% which makes it harder to understand the output and also benchstat in diff mode can hide a line if e.g. value was close to 1 µs and on second run ioping decided to use different unit for the value. It should be possible to normalize time units to "ns/op" in all converters. However instead of doing same and similar conversions again and again in every converter we can implement this logic in only one place - benchstat - the place where benchmark data is consumed and teach only it to understand various units. This way it will understand e.g. all the timing units automatically that are used there in practice in the wide, like ns, us, μs, ms etc, and removes the need to do unit conversions from every producer. Another motivation for teaching benchstat centrally about various units is that raw benchmark output is frequently read/grasped by human (at least I do this sometimes in addition to observing just statistics) and for humans it is easier to read e.g. time in properly selected units for a particular test - e.g. microseconds or milliseconds, and always producing time in nanoseconds makes the data harder to percept for a person. This patch teaches benchstat to handle various timing units and normalize them internally all to time. Change-Id: I1941af58e73df6737b6488d5429d0bf87a81c1ee
-
- 03 Jan, 2018 1 commit
-
-
namusyaka authored
This commit fixes a few parts that do not conform to the specification of html5 by specifying doctype and html, head, body and title elements. Fixes golang/go#23308 Change-Id: If9e58b056247fce4505c2482443043f9853af3a4 Reviewed-on: https://go-review.googlesource.com/85796 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
- 29 Nov, 2017 1 commit
-
-
Brad Fitzpatrick authored
Sqlite3 doesn't run on plan9, so don't try to build/test things that depend on it. But still keep testing the other tools in x/perf on plan9. Change-Id: I10076040827dd527061d10c661a97882a8f84d6b Reviewed-on: https://go-review.googlesource.com/80697 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 28 Nov, 2017 1 commit
-
-
Brad Fitzpatrick authored
Change-Id: Ifa0a8e0ca265c0b96c039a6454d47b873ab25c54 Reviewed-on: https://go-review.googlesource.com/80142Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 27 Sep, 2017 1 commit
-
-
Kevin Burke authored
Help people learn how to download and contribute to the project. Change-Id: I4b88b9b3872485ce78c7f6ea50596228afd82843 Reviewed-on: https://go-review.googlesource.com/49870Reviewed-by: Miguel Bernabeu <miguelbernadi@gmail.com> Reviewed-by: Kevin Burke <kev@inburke.com>
-
- 06 Jul, 2017 1 commit
-
-
Tamir Duberstein authored
This makes the graphs produced by /trend much more useful by exposing the actual commit SHA in addition to the index. Change-Id: Ia8b11278752bcd95322740afb5c17783db74e944 Reviewed-on: https://go-review.googlesource.com/47510Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 27 May, 2017 2 commits
-
-
Josh Bleecher Snyder authored
When all samples are identical, instead of printing +0.00%, print just 0.00%. This is not just more accurate. When benchmarking the compiler, one item of interest is the impact on object file and executable sizes. These can change by tiny amounts, below two sig figs. However, the existence of any change is sometimes a cue to the reader to investigate further. This obviously should not be relied on, but it is nevertheless a useful signal. Change-Id: I1e5157a52fc47c6871ca87b0e9cff223f4fd43d9 Reviewed-on: https://go-review.googlesource.com/44190 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
compilebench emits both ns/op and user-ns/op measurements. This CL improves benchstat's handling of such measurements. Migrated from https://github.com/rsc/benchstat/pull/5. Sample output, before: name old user-ns/op new user-ns/op delta Template 279M ± 7% 273M ± 4% ~ (p=0.329 n=6+5) Unicode 148M ±11% 131M ± 7% -11.49% (p=0.030 n=6+5) GoTypes 830M ± 2% 835M ± 3% ~ (p=0.792 n=6+5) SSA 9.60G ± 3% 9.64G ± 2% ~ (p=0.792 n=6+5) Flate 158M ± 3% 155M ± 1% ~ (p=0.329 n=6+5) GoParser 204M ± 6% 202M ± 8% ~ (p=0.792 n=6+5) Reflect 511M ± 9% 531M ± 6% ~ (p=0.177 n=6+5) Tar 151M ± 3% 151M ± 5% ~ (p=0.931 n=6+5) XML 271M ± 3% 268M ± 3% ~ (p=0.429 n=6+5) Sample output, after: name old user-time/op new user-time/op delta Template 279ms ± 7% 273ms ± 4% ~ (p=0.329 n=6+5) Unicode 148ms ±11% 131ms ± 7% -11.49% (p=0.030 n=6+5) GoTypes 830ms ± 2% 835ms ± 3% ~ (p=0.792 n=6+5) SSA 9.60s ± 3% 9.64s ± 2% ~ (p=0.792 n=6+5) Flate 158ms ± 3% 155ms ± 1% ~ (p=0.329 n=6+5) GoParser 204ms ± 6% 202ms ± 8% ~ (p=0.792 n=6+5) Reflect 511ms ± 9% 531ms ± 6% ~ (p=0.177 n=6+5) Tar 151ms ± 3% 151ms ± 5% ~ (p=0.931 n=6+5) XML 271ms ± 3% 268ms ± 3% ~ (p=0.429 n=6+5) Change-Id: I716b4e89a28adc72e9135b8c580434f748a9c0a9 Reviewed-on: https://go-review.googlesource.com/39794 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Quentin Smith <quentin@golang.org>
-
- 12 May, 2017 1 commit
-
-
Tamir Duberstein authored
Before this change, localperf would log: localperf: 2017/05/09 14:10:47 failed to fetch recent uploads: Get localhost:8081/uploads?extra_label=by&extra_label=upload-time&limit=16: unsupported protocol scheme "localhost" Change-Id: Ifeba048c9dd54cf2c02ed539c5bfa0e6074fd60a Reviewed-on: https://go-review.googlesource.com/43032Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 11 May, 2017 1 commit
-
-
Quentin Smith authored
Change-Id: I18ee1d1eab704c628dd476ee3aa7dc90e729106d Reviewed-on: https://go-review.googlesource.com/43053 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 21 Apr, 2017 3 commits
-
-
Quentin Smith authored
Change-Id: I0ba5b534e0d5262e2626351d10564219d18f93a8 Reviewed-on: https://go-review.googlesource.com/41372Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Quentin Smith authored
Change-Id: Ibbe3faf5bad9f702b46703a68c612b6e9dbf666d Reviewed-on: https://go-review.googlesource.com/41250Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
This adds a -data flag to localperfdata to specify a local data directory. In combination with -dsn to specify a local database, localperfdata is now useful for non-testing applications. Change-Id: I32ddb7ba5a96483c1f93cb7b52bbc2643b5b3798 Reviewed-on: https://go-review.googlesource.com/37861Reviewed-by: Russ Cox <rsc@golang.org>
-
- 07 Apr, 2017 2 commits
-
-
Quentin Smith authored
MySQL requires HAVING to refer to a column from a subquery, but SQLite requires WHERE since the query is not an aggregation. Plumb through the driver name so ListUploads can change its query slightly. Change-Id: I07bb8010824d7e2362e203a68fed7bb968d5fe40 Reviewed-on: https://go-review.googlesource.com/39614 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
Go 1.9 and up write "pkg", "goos", and "goarch" keys in benchmark output. benchstat now understands benchmark labels, and uses them to separate incomparable benchmark results. cmd/benchstat gains a command-line flag called "-split" to control this, defaulting to "pkg,goos,goarch". Change-Id: I00413ab348bbff31743b59e81d88c4faab1a8dca Reviewed-on: https://go-review.googlesource.com/38584 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
- 04 Apr, 2017 1 commit
-
-
Quentin Smith authored
Change-Id: I8c284c7d8f1a567c740bfe78c2b8f1ee5e662e72 Reviewed-on: https://go-review.googlesource.com/38395Reviewed-by: Chris Broadfoot <cbro@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
- 03 Apr, 2017 1 commit
-
-
Egon Elbre authored
Flush strings to disk before diffing files. Change-Id: I91c47bfe352ee833a164fa7de00341e96498bc96 Reviewed-on: https://go-review.googlesource.com/39235Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 31 Mar, 2017 3 commits
-
-
Quentin Smith authored
The Uploads table gets an entry when a user or the server aborts an upload in mid-upload. The Records table is cleaned up by the transaction, but the Uploads entry is left behind. The optimized query that is used for the perf.golang.org homepage did not properly exclude these uploads that have no records. Change-Id: I8322af5946c233e5cb4b15bf57d9487bcd1e6423 Reviewed-on: https://go-review.googlesource.com/39051 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
Change-Id: I79f486a875e4c6858482d406b1c0328655e32aef Reviewed-on: https://go-review.googlesource.com/38305 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
Change-Id: Ie2cafb6ee0fe30860803cc332133fc1922857831 Reviewed-on: https://go-review.googlesource.com/38304 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
- 14 Mar, 2017 3 commits
-
-
Austin Clements authored
Change-Id: I5c1363125998acf7d28692aa94ddfbef148577c2 Reviewed-on: https://go-review.googlesource.com/38094Reviewed-by: Quentin Smith <quentin@golang.org>
-
Austin Clements authored
If there's just one benchmark, the geomean will be the same as the benchmark result. Omit it. Change-Id: Id165fa127aa8615015511d6a1da6e1be48b85539 Reviewed-on: https://go-review.googlesource.com/38093Reviewed-by: Quentin Smith <quentin@golang.org>
-
Austin Clements authored
This makes the geomean undefined (or zero, depending on who you ask). Since these usually come from counts, it's more informative to just omit the benchmark. Change-Id: Ia426955784cf12fea19b3d5e51a49a436cbc81c6 Reviewed-on: https://go-review.googlesource.com/38092Reviewed-by: Quentin Smith <quentin@golang.org>
-
- 07 Mar, 2017 1 commit
-
-
Quentin Smith authored
Change-Id: Iceca4836257d102335be2cd4e86fae8fb869f652 Reviewed-on: https://go-review.googlesource.com/37853 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
- 06 Mar, 2017 1 commit
-
-
Quentin Smith authored
- document local servers in README - rename local servers to "localperf" and "localperfdata" so one can "go get" them. - find static/templates dirs automatically - allow configuring a persistent database in localperfdata Change-Id: I4e62f23c38be6978f091ccbbda8002d9f588b8a4 Reviewed-on: https://go-review.googlesource.com/37717Reviewed-by: Russ Cox <rsc@golang.org>
-
- 28 Feb, 2017 2 commits
-
-
Quentin Smith authored
This adds a -view_url_base flag to set the view URL base, and renames -port to -addr to match analysis/localserver. Change-Id: I2903ec0814c630345c212dac10a0f36567aab5ec Reviewed-on: https://go-review.googlesource.com/37533Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
This changes benchsave to behave like benchstat; in addition to uploading the files and printing a URL, it also prints the text format of benchstat. This is fetched from the ViewURL provided by the storage server, so the analysis can be changed/improved without requiring users to rebuild benchsave. Change-Id: I28519a5e3cf89962bd952ff26a8a6a717b9ef636 Reviewed-on: https://go-review.googlesource.com/37532Reviewed-by: Russ Cox <rsc@golang.org>
-
- 27 Feb, 2017 5 commits
-
-
Quentin Smith authored
This uses a different query structure for ListUploads when the query string is empty. On our production database, this reduces the query time from ~5s to ~0.1s, which drastically improves the performance of perf.golang.org. Change-Id: I1f2bf97449858d1b06791dd352cc437dcbda1fac Reviewed-on: https://go-review.googlesource.com/37168 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
SortBy seems to sometimes sort by the second column instead of the first. Until that bug is figured out, do the sorting one column at a time to control the ordering. Without this patch, try /trend?q=upload%3A20170216.3+name%3ARegexpMatchEasy0_1K&raw=1 and /trend?q=trend%3Abuild.golang.org%2Fwindows-amd64-gce+name%3AGzip+commit-time%3E2016-11-08+commit-time%3C2016-11-30&raw=1 The former seems to sort first by "commit" instead of "commit-time", but the latter sorts by "commit-time" first. Apply the patch and both are sorted by commit-time. Change-Id: I8ebd2720fa1147fc1d468a6bab515a224537a98e Reviewed-on: https://go-review.googlesource.com/37471 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
Since the upload ID is part of the primary key, we can avoid using the RecordLabels table to find matching records. This takes the query "upload:20170127.22 name:Gzip" from ~0.3s to ~0.04s on our production database. Change-Id: Id31624ec1b81f3a7f648c6597392718c56a10edd Reviewed-on: https://go-review.googlesource.com/37236 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
Change-Id: I7bd1ed03127830d6530415d77263ee8b0155a2c4 Reviewed-on: https://go-review.googlesource.com/37230 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
Change-Id: I0aad9567cc8887922541145868fd927d8c4fb10b Reviewed-on: https://go-review.googlesource.com/37167 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
- 17 Feb, 2017 5 commits
-
-
Quentin Smith authored
This adds an undocumented "raw=1" query parameter to visualize raw results without any averaging or filtering. Results are colored according to the upload-part they came from. Change-Id: I25590ace89dfe55380e28182c38aeb223e2e73b9 Reviewed-on: https://go-review.googlesource.com/37160 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
Change-Id: I405ff8d89593365b0e27925e7640bee35c723682 Reviewed-on: https://go-review.googlesource.com/37158 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
Queries with multiple parts referring to the same key are now simplified before sending to the database. If the query can be proven to return no results, the query is not sent to the database at all. Change-Id: I2d307d09f463fb0e6e7bd9b9902115916e7ffffa Reviewed-on: https://go-review.googlesource.com/36953 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Quentin Smith authored
This is still not feature complete, so the page is not linked from anywhere. It supports graphing benchmark results that match any perf query. One line is shown per matching benchmark name. Demo available at: https://quentin.perf.golang.org/trend?q=upload:20170127.25 Big TODO tasks: - improve display of multiple benchmarks (multiple graphs? click-to-select? additional user controls?) - correlate benchmarks across uploads (currently all uploads are assumed to be from identical machines) - optimize/cache queries (6 months of a single benchmark loads in 12s; 6 months of all benchmarks times out at >60s) Change-Id: I7d1f6073c4837ef63205a10dd4e18085fe7d00ac Reviewed-on: https://go-review.googlesource.com/36612 Run-TryBot: Quentin Smith <quentin@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Quentin Smith authored
Change-Id: I89a2ad20d0378077fb90cae45fcc8cab33c147ec Reviewed-on: https://go-review.googlesource.com/36952 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
- 10 Feb, 2017 1 commit
-
-
Quentin Smith authored
With this CL, the perf repo should now pass all tests on Windows. Change-Id: I91fead1e065f22b54236ff96c6ace529dc3964a8 Reviewed-on: https://go-review.googlesource.com/36627 Run-TryBot: Quentin Smith <quentin@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-