Message217253
| Author |
vstinner |
| Recipients |
josh.r, jtaylor, neologix, njs, pitrou, skrah, vstinner |
| Date |
2014年04月27日.10:36:03 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1398594965.45.0.6620318757.issue21233@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I wrote a short microbenchmark allocating objects using my benchmark.py script.
It looks like the operation "(None,) * N" is slower with calloc-3.patch, but it's unclear how much times slower it is. I don't understand why only this operation has different speed.
Do you have ideas for other benchmarks?
Using the timeit module:
$ ./python.orig -m timeit '(None,) * 10**5'
1000 loops, best of 3: 357 usec per loop
$ ./python.calloc -m timeit '(None,) * 10**5'
1000 loops, best of 3: 698 usec per loop
But with different parameters, the difference is lower:
$ ./python.orig -m timeit -r 20 -n '1000' '(None,) * 10**5'
1000 loops, best of 20: 362 usec per loop
$ ./python.calloc -m timeit -r 20 -n '1000' '(None,) * 10**5'
1000 loops, best of 20: 392 usec per loop
Results of bench_alloc.py:
Common platform:
CFLAGS: -Wno-unused-result -Werror=declaration-after-statement -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
CPU model: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
Python unicode implementation: PEP 393
Timer info: namespace(adjustable=False, implementation='clock_gettime(CLOCK_MONOTONIC)', monotonic=True, resolution=1e-09)
Timer: time.perf_counter
SCM: hg revision=462470859e57+ branch=default date="2014-04-26 19:01 -0400"
Platform: Linux-3.13.8-200.fc20.x86_64-x86_64-with-fedora-20-Heisenbug
Bits: int=32, long=64, long long=64, size_t=64, void*=64
Platform of campaign orig:
Timer precision: 42 ns
Date: 2014年04月27日 12:27:26
Python version: 3.5.0a0 (default:462470859e57, Apr 27 2014, 11:52:55) [GCC 4.8.2 20131212 (Red Hat 4.8.2-7)]
Platform of campaign calloc:
Timer precision: 45 ns
Date: 2014年04月27日 12:29:10
Python version: 3.5.0a0 (default:462470859e57+, Apr 27 2014, 12:04:57) [GCC 4.8.2 20131212 (Red Hat 4.8.2-7)]
-----------------------------------+--------------+---------------
Tests | orig | calloc
-----------------------------------+--------------+---------------
object() | 61 ns (*) | 62 ns
b'A' * 10 | 55 ns (*) | 51 ns (-7%)
b'A' * 10**3 | 99 ns (*) | 94 ns
b'A' * 10**6 | 37.5 us (*) | 36.6 us
'A' * 10 | 62 ns (*) | 58 ns (-7%)
'A' * 10**3 | 107 ns (*) | 104 ns
'A' * 10**6 | 37 us (*) | 36.6 us
'A' * 10**8 | 16.2 ms (*) | 16.4 ms
decode 10 null bytes from ASCII | 253 ns (*) | 248 ns
decode 10**3 null bytes from ASCII | 359 ns (*) | 357 ns
decode 10**6 null bytes from ASCII | 78.8 us (*) | 78.7 us
decode 10**8 null bytes from ASCII | 26.2 ms (*) | 25.9 ms
(None,) * 10**0 | 30 ns (*) | 30 ns
(None,) * 10**1 | 78 ns (*) | 77 ns
(None,) * 10**2 | 427 ns (*) | 460 ns (+8%)
(None,) * 10**3 | 3.5 us (*) | 3.7 us (+6%)
(None,) * 10**4 | 34.7 us (*) | 37.2 us (+7%)
(None,) * 10**5 | 357 us (*) | 390 us (+9%)
(None,) * 10**6 | 3.86 ms (*) | 4.43 ms (+15%)
(None,) * 10**7 | 50.4 ms (*) | 50.3 ms
(None,) * 10**8 | 505 ms (*) | 504 ms
([None] * 10)[1:-1] | 121 ns (*) | 120 ns
([None] * 10**3)[1:-1] | 3.57 us (*) | 3.57 us
([None] * 10**6)[1:-1] | 4.61 ms (*) | 4.59 ms
([None] * 10**8)[1:-1] | 585 ms (*) | 582 ms
-----------------------------------+--------------+---------------
Total | 1.19 sec (*) | 1.19 sec
-----------------------------------+--------------+--------------- |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2014年04月27日 10:36:05 | vstinner | set | recipients:
+ vstinner, pitrou, njs, skrah, neologix, jtaylor, josh.r |
| 2014年04月27日 10:36:05 | vstinner | set | messageid: <1398594965.45.0.6620318757.issue21233@psf.upfronthosting.co.za> |
| 2014年04月27日 10:36:05 | vstinner | link | issue21233 messages |
| 2014年04月27日 10:36:04 | vstinner | create |
|