Tim N. van der Leeuw wrote: > With the nr of loops corrected, Python on my laptop performs worse than > C++ under all circumstances, by a factor of about 2:
*Phew* Great to know that my model of how the world works is still correct! (at least in relation to Python and C++!) :) Thanks, Ray > > ============ Python 2.4 ============= > [EMAIL PROTECTED] ~/My Documents/Python > $ /cygdrive/c/Python24/python.exe SpeedTest.py > Begin Test > Number of unique string objects: 4 > so long... > What do you know > fool > chicken crosses road > Number of unique string objects: 4000000 > so long... > What do you know > fool > chicken crosses road > Fast - Elapsed: 4.239721 seconds > Slow - Elapsed: 11.883234 seconds > > ============ Python 2.5 ============= > [EMAIL PROTECTED] ~/My Documents/Python > $ /cygdrive/c/Python25/python.exe SpeedTest.py > Begin Test > Number of unique string objects: 4 > so long... > What do you know > fool > chicken crosses road > Number of unique string objects: 4000000 > so long... > What do you know > fool > chicken crosses road > Fast - Elapsed: 4.031873 seconds > Slow - Elapsed: 11.314742 seconds > > > ============ GCC 3.4.5, MinGW, -O6 ============= > [EMAIL PROTECTED] ~/My Documents/Python > $ ./SpeedTest.exe > Begin Test > What do you know? > chicken crosses road > fool > so long... > What do you know? > chicken crosses road > fool > so long... > Fast - Elapsed: 2.088 seconds > Slow - Elapsed: 7.033 seconds > > ============ VC++ 6, 'release' build ============= > [EMAIL PROTECTED] ~/My Documents/Python > $ ./SpeedTest_VC.exe > Begin Test > What do you know? > chicken crosses road > fool > so long... > What do you know? > chicken crosses road > fool > so long... > Fast - Elapsed: 4.585 seconds > Slow - Elapsed: 5.024 seconds > > ========== GCC 3.4.5, MinGW, -O6, with most optimized C++ code > ========== > [EMAIL PROTECTED] ~/My Documents/Python > $ ./testcpp.exe > print_occurence_of_strings > What do you know? > chicken crosses road > fool > so long... > print_occurence_of_unique_strings > What do you know? > chicken crosses road > fool > so long... > print_occurence_of_unique_strings_compared_by_address > What do you know? > chicken crosses road > fool > so long... > strings : 2.338 > unique strings : 1.109 > compared by address : 0.23 > > [EMAIL PROTECTED] ~/My Documents/Python > > ============ IronPython 1.0rc2 ============= > > IronPython had a hard time coping with it; creating 4 million string > objects is a bit too much and the CLR was eating nearly a gigabyte of > memory near the end. > Here are the numbers: > > IronPython 1.0.60816 on .NET 2.0.50727.42 > Copyright (c) Microsoft Corporation. All rights reserved. > >>> import sys > >>> sys.path.append('C:/Documents and Settings/LeeuwT/My Documents/Python') > >>> import SpeedTest > >>> SpeedTest.run_test() > Begin Test > Number of unique string objects: 4 > What do you know > so long... > chicken crosses road > fool > Number of unique string objects: 4000000 > What do you know > so long... > chicken crosses road > fool > Fast - Elapsed: 10.501273 seconds > Slow - Elapsed: 371.047343 seconds > >>> > > ============ Java 1.6.0 b2 ============= > Set size: 4 > chicken crosses road > What do you know > fool > so long... > Set size: 4 > chicken crosses road > What do you know > fool > so long... > Fast - Elapsed 1.003 seconds > Slow - Elapsed 3.96 seconds > > ============ Java 1.5.0 ============= > Set size: 4 > fool > What do you know > so long... > chicken crosses road > Set size: 4 > fool > What do you know > so long... > chicken crosses road > Fast - Elapsed 1.754 seconds > Slow - Elapsed 5.044 seconds > ========================= > > Note that the Python code creates a set of all unique id's of all > objects in list a, and prints the length of this set, to verify that > all strings are really unique instances or duplicate instances. The C++ > versions don't do that (at least not for 4 million strings); so Python > is at a slight disadvantage here. Printing the number of strings still > didn't help me catch the off-by-ten errors though. > > I included a Java version of the program, and it looks like it performs > quite well compared to C++ both with jdk1.5 and jdk1.6. > > > I humbly apologize for my misinformation yesterday. > > Regards, > > --Tim -- http://mail.python.org/mailman/listinfo/python-list