Populating a dictionary, fast [SOLVED SOLVED]

Michael Bacarella mbac at gpshopper.com
Thu Nov 15 16:36:17 EST 2007


> On Thu, 15 Nov 2007 15:51:25 -0500, Michael Bacarella wrote:
> 
> > Since some people missed the EUREKA!, here's the executive summary:
> >
> > 	Python2.3: about 45 minutes
> > 	Python2.4: about 45 minutes
> > 	Python2.5: about _30 seconds_
> 
> I'm really happy that upgrading to 2.5 solved the issue for you, but I
> get similar behaviour and I'm running 2.5, so it isn't as simple as
> that.

Maybe some more details about my environment will help.

Our fast Python is 2.5, built from source.  Our slow Python is 2.3,
default installed with the OS, from rpm.

# python
Python 2.5.1 (r251:54863, May 11 2007, 14:17:21) 
[GCC 3.4.4 20050721 (Red Hat 3.4.4-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

# which python
/usr/local/bin/python

# ls -la /usr/local/bin/python
-rwxr-xr-x  2 root root 5312572 Nov 12 12:54 /usr/local/bin/python

# md5sum /usr/local/bin/python
5c24e54a6cf5a556e9371325d18bc1fb  /usr/local/bin/python

# ls -la /usr/bin/python*
lrwxrwxrwx  1 root root    9 Nov 12 12:57 /usr/bin/python -> python2
lrwxrwxrwx  1 root root    6 Nov 12 12:57 /usr/bin/python2 -> python2.5
-rwxr-xr-x  1 root root 8344 May  2  2007 /usr/bin/python2.3
lrwxrwxrwx  1 root root   21 Nov 12 12:57 /usr/bin/python2.5 ->
/usr/local/bin/python

# ls -la /usr/local/src/ | grep Python  
drwxr-xr-x  19    1000 1000     4096 Nov 12 12:54 Python-2.5.1
-rw-r--r--   1 root    root  9383651 Nov 12 12:51 Python-2.5.1.tar.bz2

# gcc -v
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.4/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-java-awt=gtk
--host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)

# cat /etc/redhat-release 
CentOS release 4.2 (Final)

# uname -a
Linux xxx 2.6.9-22.ELsmp #1 SMP Sat Oct 8 21:32:36 BST 2005 x86_64 x86_64
x86_64 GNU/Linux

# free
             total       used       free     shared    buffers     cached
Mem:       7390244    6961440     428804          0      15520    2549732
-/+ buffers/cache:    4396188    2994056
Swap:      2096472      10280    2086192

# cat /proc/cpuinfo 
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 5
model name      : AMD Opteron(tm) Processor 246
stepping        : 10
cpu MHz         : 2009.305
cache size      : 1024 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov 
pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips        : 3981.31
TLB size        : 1088 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 5
model name      : AMD Opteron(tm) Processor 246
stepping        : 10
cpu MHz         : 2009.305
cache size      : 1024 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov 
pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips        : 4014.08
TLB size        : 1088 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp


***** information about Python 2.3 *****

# rpm -qi python
Name        : python                       Relocations: (not relocatable)
Version     : 2.3.4                             Vendor: CentOS
Release     : 14.4                          Build Date: Wed 02 May 2007
07:20:29 PM EDT
Install Date: Mon 04 Jun 2007 05:48:29 PM EDT      Build Host: builder6
Group       : Development/Languages         Source RPM:
python-2.3.4-14.4.src.rpm
Size        : 21137194                         License: PSF - see LICENSE
Signature   : DSA/SHA1, Sat 05 May 2007 09:33:49 AM EDT, Key ID
a53d0bab443e1821
URL         : http://www.python.org/
Summary     : An interpreted, interactive, object-oriented programming
language.
Description :
Python is an interpreted, interactive, object-oriented programming
language often compared to Tcl, Perl, Scheme or Java. Python includes
modules, classes, exceptions, very high level dynamic data types and
dynamic typing. Python supports interfaces to many system calls and
libraries, as well as to various windowing systems (X11, Motif, Tk,
Mac and MFC).

Programmers can write new built-in modules for Python in C or C++.
Python can be used as an extension language for applications that need
a programmable interface. This package contains most of the standard
Python modules, as well as modules for interfacing to the Tix widget
set for Tk and RPM.

Note that documentation for Python is provided in the python-docs
package.




More information about the Python-list mailing list