Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(493)

Issue 105990045: code review 105990045: testing: make benchmarking faster (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
11 years ago by josharian
Modified:
10 years, 11 months ago
Reviewers:
r, rsc, crawshaw
CC:
golang-codereviews, crawshaw, r, rsc
Visibility:
Public.

Description

testing: make benchmarking faster The number of estimated iterations required to reach the benchtime is multiplied by a safety margin (to avoid falling just short) and then rounded up to a readable number. With an accurate estimate, in the worse case, the resulting number of iterations could be 3.75x more than necessary: 1.5x for safety * 2.5x to round up (e.g. from 2eX+1 to 5eX). This CL reduces the safety margin to 1.2x. Experimentation showed a diminishing margin of return past 1.2x, although the average case continued to show improvements down to 1.05x. This CL also reduces the maximum round-up multiplier from 2.5x (from 2eX+1 to 5eX) to 2x, by allowing the number of iterations to be of the form 3eX. Both changes improve benchmark wall clock times, and the effects are cumulative. From 1.5x to 1.2x safety margin: package old s new s delta bytes 163 125 -23% encoding/json 27 21 -22% net/http 42 36 -14% runtime 463 418 -10% strings 82 65 -21% Allowing 3eX iterations: package old s new s delta bytes 163 134 -18% encoding/json 27 23 -15% net/http 42 36 -14% runtime 463 422 -9% strings 82 72 -12% Combined: package old s new s delta bytes 163 112 -31% encoding/json 27 20 -26% net/http 42 30 -29% runtime 463 346 -25% strings 82 60 -27%

Patch Set 1 #

Patch Set 2 : diff -r f70ac618569d https://code.google.com/p/go #

Patch Set 3 : diff -r f70ac618569d https://code.google.com/p/go #

Patch Set 4 : diff -r f70ac618569d https://code.google.com/p/go #

Patch Set 5 : diff -r 75040398cb4e https://code.google.com/p/go #

Unified diffs Side-by-side diffs Delta from patch set Stats (+11 lines, -7 lines) Patch
M src/pkg/testing/benchmark.go View 1 2 4 chunks +9 lines, -7 lines 0 comments Download
M src/pkg/testing/benchmark_test.go View 1 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 5
josharian
Hello golang-codereviews@googlegroups.com (cc: crawshaw@golang.org, rsc@golang.org), I'd like you to review this change to https://code.google.com/p/go
11 years ago (2014-06-13 21:53:01 UTC) #1
crawshaw
LGTM but wait for rsc, as I have already misunderstood this code once.
11 years ago (2014-06-14 03:15:18 UTC) #2
r
LGTM no need to wait for rsc
10 years, 11 months ago (2014-06-23 22:13:50 UTC) #3
rsc
LGTM Thanks for working through the rationale. We'll see what happens with the builders...
10 years, 11 months ago (2014-06-23 23:00:31 UTC) #4
josharian
10 years, 11 months ago (2014-06-24 15:39:42 UTC) #5
*** Submitted as https://code.google.com/p/go/source/detail?r=829d3df73b1a ***

testing: make benchmarking faster

The number of estimated iterations required to reach the benchtime is multiplied
by a safety margin (to avoid falling just short) and then rounded up to a
readable number. With an accurate estimate, in the worse case, the resulting
number of iterations could be 3.75x more than necessary: 1.5x for safety * 2.5x
to round up (e.g. from 2eX+1 to 5eX).

This CL reduces the safety margin to 1.2x. Experimentation showed a diminishing
margin of return past 1.2x, although the average case continued to show
improvements down to 1.05x.

This CL also reduces the maximum round-up multiplier from 2.5x (from 2eX+1 to
5eX) to 2x, by allowing the number of iterations to be of the form 3eX.

Both changes improve benchmark wall clock times, and the effects are cumulative.

From 1.5x to 1.2x safety margin:

package		old s	new s	delta
bytes		163	125	-23%
encoding/json	27	21	-22%
net/http	42	36	-14%
runtime		463	418	-10%
strings		82	65	-21%

Allowing 3eX iterations:

package		old s	new s	delta
bytes		163	134	-18%
encoding/json	27	23	-15%
net/http	42	36	-14%
runtime		463	422	-9%
strings		82	72	-12%

Combined:

package		old s	new s	delta
bytes		163	112	-31%
encoding/json	27	20	-26%
net/http	42	30	-29%
runtime		463	346	-25%
strings		82	60	-27%

LGTM=crawshaw, r, rsc
R=golang-codereviews, crawshaw, r, rsc
CC=golang-codereviews
https://codereview.appspot.com/105990045
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b