Richard Saunders <[email protected]> added the comment:
Here's a test demonstrating the memcmp optimization effect:
-----------------------------------------------------------
more ~/PickTest5/Python/string_test3.py
a = []
b = []
c = []
d = []
for x in range(0,1000) :
a.append("the quick brown fox"+str(x))
b.append("the wuick brown fox"+str(x))
c.append("the quick brown fox"+str(x))
d.append("the wuick brown fox"+str(x))
count = 0
for x in range(0,200000) :
if a==c : count += 1
if a==c : count += 2
if a==d : count += 3
if b==c : count += 5
if b==d : count += 7
if c==d : count += 11
print(count)
---------------------------------------------------------------------
# plain Python 3.3 no memcmp, no UCS specialization
% time ./python ~/PickTest5/Python/string_test3.py
2000000
28.918u 0.014s 0:29.02 99.6% 0+0k 0+0io 0pf+0w
% setenv CFLAGS -fno-builtin-memcmp # (reconfigure and remake)
% time ./python ~/PickTest5/Python/string_test3.py
2000000
29.783u 0.017s 0:29.88 99.6% 0+0k 0+0io 0pf+0w
-------------------------------------------------------------------------
# Python 3.3 with memcmp optimizations and UCS2/4 specialization (no CFLAGS)
% time ./python ~/PickTest5/Python/string_test3.py
2000000
37.126u 0.046s 0:37.35 99.4% 0+0k 0+0io 0pf+0w
% setenv CFLAGS -fno-builtin-memcmp # (reconfigure and remake)
% time ./python ~/PickTest5/Python/string_test3.py
2000000
18.621u 0.013s 0:18.69 99.6% 0+0k 0+0io 0pf+0w
---------------------------------------------------------------------
Note we only really see the effect if we make sure that gcc
isn't emitting its "special" memcmp: that's why the -fno-builtin-memcmp
is SO important on gcc builds!
See http://www.picklingtools.com/study.pdf
I am currently working with Bob Arendt (a colleague who works
frequently with Fedora) to try to put the
-fno-builtin-memcmp in the .spec file for their Python
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue13279>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com