Commit 659bc04
committed
reflect: cache IsVariadic calls in Call
These calls are cachable, so do that in order to avoid doing extra work.
This opportunity was discovered while taking a look at a CPU profile while
investigating #7818.
I added a BenchmarkCallMethod which is similar to BechmarkCall but for a
method receiver.
Benchmark results, including the new BenchmarkCallMethod:
name old time/op new time/op delta
Call-16 22.0ns ±19% 20.2ns ±17% -8.08% (p=0.000 n=40+40)
CallMethod-16 100ns ± 3% 91ns ± 2% -9.13% (p=0.000 n=40+39)
CallArgCopy/size=128-16 15.7ns ± 1% 14.3ns ± 4% -8.98% (p=0.000 n=38+37)
CallArgCopy/size=256-16 15.9ns ± 3% 15.0ns ± 5% -6.12% (p=0.000 n=39+39)
CallArgCopy/size=1024-16 18.8ns ± 6% 17.1ns ± 6% -9.03% (p=0.000 n=38+38)
CallArgCopy/size=4096-16 26.6ns ± 3% 25.2ns ± 4% -5.19% (p=0.000 n=39+40)
CallArgCopy/size=65536-16 379ns ± 3% 371ns ± 5% -2.11% (p=0.000 n=39+40)
name old alloc/op new alloc/op delta
Call-16 0.00B 0.00B ~ (all equal)
CallMethod-16 0.00B 0.00B ~ (all equal)
name old allocs/op new allocs/op delta
Call-16 0.00 0.00 ~ (all equal)
CallMethod-16 0.00 0.00 ~ (all equal)
name old speed new speed delta
CallArgCopy/size=128-16 8.13GB/s ± 1% 8.92GB/s ± 4% +9.77% (p=0.000 n=38+38)
CallArgCopy/size=256-16 16.1GB/s ± 3% 17.1GB/s ± 5% +6.56% (p=0.000 n=39+39)
CallArgCopy/size=1024-16 54.6GB/s ± 6% 60.1GB/s ± 5% +9.93% (p=0.000 n=38+38)
CallArgCopy/size=4096-16 154GB/s ± 5% 163GB/s ± 4% +5.63% (p=0.000 n=40+40)
CallArgCopy/size=65536-16 173GB/s ± 3% 177GB/s ± 5% +2.18% (p=0.000 n=39+40)
Updates #7818.
Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>1 parent 23b2040 commit 659bc04
1 file changed
+5
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
375 | 375 | | |
376 | 376 | | |
377 | 377 | | |
| 378 | + | |
378 | 379 | | |
379 | | - | |
| 380 | + | |
380 | 381 | | |
381 | 382 | | |
382 | 383 | | |
| |||
386 | 387 | | |
387 | 388 | | |
388 | 389 | | |
389 | | - | |
| 390 | + | |
390 | 391 | | |
391 | 392 | | |
392 | 393 | | |
393 | 394 | | |
394 | 395 | | |
395 | | - | |
| 396 | + | |
396 | 397 | | |
397 | 398 | | |
398 | 399 | | |
| |||
406 | 407 | | |
407 | 408 | | |
408 | 409 | | |
409 | | - | |
| 410 | + | |
410 | 411 | | |
411 | 412 | | |
412 | 413 | | |
| |||
0 commit comments