diff options
| author | Michael Munday <munday@ca.ibm.com> | 2016-08-30 15:25:28 -0400 |
|---|---|---|
| committer | Michael Munday <munday@ca.ibm.com> | 2016-09-27 16:00:19 +0000 |
| commit | 3436f0776f4f373b5ba1aacf9f66689c833168b0 (patch) | |
| tree | 2862d3d041d4691df184c63a86e46d2b8fe56126 /src/database/sql/sql.go | |
| parent | 6c43c0c2fdc866bf6d85a4689ad42c42b9c527dd (diff) | |
| download | go-3436f0776f4f373b5ba1aacf9f66689c833168b0.tar.xz | |
reflect, runtime: optimize Value.Call on s390x and add benchmark
Use an MVC loop to copy arguments in runtime.call* rather than copying
bytes individually.
I've added the benchmark CallArgCopy to test the speed of Value.Call
for various argument sizes.
name old speed new speed delta
CallArgCopy/size=128 439MB/s ± 1% 582MB/s ± 1% +32.41% (p=0.000 n=10+10)
CallArgCopy/size=256 695MB/s ± 1% 1172MB/s ± 1% +68.67% (p=0.000 n=10+10)
CallArgCopy/size=1024 573MB/s ± 8% 4175MB/s ± 2% +628.11% (p=0.000 n=10+10)
CallArgCopy/size=4096 1.46GB/s ± 2% 10.19GB/s ± 1% +600.52% (p=0.000 n=10+10)
CallArgCopy/size=65536 1.51GB/s ± 0% 12.30GB/s ± 1% +716.30% (p=0.000 n=9+10)
Change-Id: I87dae4809330e7964f6cb4a9e40e5b3254dd519d
Reviewed-on: https://go-review.googlesource.com/28096
Run-TryBot: Michael Munday <munday@ca.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bill O'Farrell <billotosyr@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/database/sql/sql.go')
0 files changed, 0 insertions, 0 deletions
