Python 2.5 30% schneller als 2.4?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Sonntag 25. März 2007, 15:07

Der Code:

Code: Alles auswählen

>>> def lol(x):
...     st = time.time()
...     i = 0
...     z = 0
...     while i < x:
...         i+=1
...         z+=2*2*2*2
...     et = time.time()
...     #print "Z: ",z
...     #print "I: ",i
...     print "Runtime: %s"%(et-st)
Die Zeit:

2.4.4c1

Code: Alles auswählen

>>> lol(1000000)
Runtime: 0.670638799667
>>> lol(1000000)
Runtime: 0.665006160736
>>> lol(1000000)
Runtime: 0.6014149189
>>> lol(1000000)
Runtime: 0.661872148514
>>> lol(1000000)
Runtime: 0.647384881973
>>> 
2.5

Code: Alles auswählen

>>> lol(1000000)
Runtime: 0.43562412262
>>> lol(1000000)
Runtime: 0.438977003098
>>> lol(1000000)
Runtime: 0.433445215225
>>> lol(1000000)
Runtime: 0.414832115173
>>> lol(1000000)
Runtime: 0.437886953354
>>> 

Ich habe zwar nicht das timeit modul genutzt. Aber ergebn sich bei euch auch solche extreme Werte? Habt ihr auch schon solche Test gemacht? Kennt ihr Seiten? Ich konnte so direkt nichts dazu finden.

Daten:
Intel Centino @ 1,7GHz
Ubuntu 6.10

Habe leider kein 2.3.5 drauf gabs von 2.3.5 auch 2.4 auch mehr speed?
Weil bei den Werten würde sich ein umstieg bei meinen Programmen von 2.3.5 auf 2.5 bezahlt machen.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Sonntag 25. März 2007, 15:14

Ich vermute, dass das (zum Teil zumindest) am Constant Folding von 2.5 liegt. Die "2*2*2*2" werden da gleich zu einer "16" zusammengefasst.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Sonntag 25. März 2007, 15:20

Und genau damit wollte ich es dem Compiler schwerer machen ;-)
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Sonntag 25. März 2007, 15:50

Ich habe jetzt kein Python 2.5 zum Testen hier, aber der Unterschied mit 16 und 2*2*2*2 ist gewaltig (Okay vlt. nicht so gewaltig außer bei einer großen Schleifendurchgangszahl wie 1000000):

>>> lol(1000000)
0.181025981903
>>> lol(1000000)
0.357705116272

Ich glaub ich brauch nicht sagen welches mit 16 war:)
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Montag 26. März 2007, 00:48

Code: Alles auswählen

Runtime: 0.00224184989929
...ich liebe psyco :D[/code]
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Montag 26. März 2007, 07:51

morgen,
hier der vergleich mit profile.

Code: Alles auswählen

#import cProfile # ab 2.5 
import profile
def runTest(x):
	i = 0
	z = 0
	while i < x:
		i += 1
		z += 2*2*2*2
	
profile.run('runTest(1000000)')

Code: Alles auswählen

#>C:\python25\pythonw -u "100_Python_Test.py"
         4 function calls in 0.273 CPU seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.269    0.269    0.269    0.269 100_Python_Test.py:4(runTest)
        1    0.004    0.004    0.004    0.004 :0(setprofile)
        1    0.000    0.000    0.269    0.269 <string>:1(<module>)
        0    0.000             0.000          profile:0(profiler)
        1    0.000    0.000    0.273    0.273 profile:0(runTest(1000000))
test mit python 2.4

Code: Alles auswählen

#>C:\python24\pythonw -u "100_Python_Test.py"
         4 function calls in 0.581 CPU seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.569    0.569    0.569    0.569 100_Python_Test.py:4(runTest)
        1    0.012    0.012    0.012    0.012 :0(setprofile)
        1    0.000    0.000    0.569    0.569 <string>:1(?)
        0    0.000             0.000          profile:0(profiler)
        1    0.000    0.000    0.581    0.581 profile:0(runTest(1000000))

getestet unter:
Scite ( keine console )
WinXp
2.5 GhZ Intel
768 Ram
Service-Pack 2
Benutzeravatar
Helex
User
Beiträge: 33
Registriert: Mittwoch 21. Februar 2007, 09:52
Wohnort: Dessau, Sachsen-Anhalt
Kontaktdaten:

Montag 26. März 2007, 11:31

Mal ne Frage:

dieses "Python psyco" ist doch nur ein compiler, richtig? Wird der offiziel bei installierten Linux Distris mitgeliefert oder muss man den nachträglich installieren?

Gruß vom fragenden Helex
BlackJack

Montag 26. März 2007, 12:05

Psyco ist ein JIT-Compiler für CPython auf x86-Architekturen. Bei Ubuntu gibt's den als Paket.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Montag 26. März 2007, 13:08

Ist Python (bei XP mit dem Intel C Compiler) schneller als der GCC bei Linux?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Montag 26. März 2007, 19:21

Gerüchteweise optimiert der MS-Compiler Python etwas besser als GCC, und Intel ist besser als beiden.

Gerüchteweise.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
encbladexp
User
Beiträge: 61
Registriert: Freitag 7. März 2003, 19:28
Kontaktdaten:

Montag 26. März 2007, 19:45

Hiermal die Ergebnisse vom 1. Post auf einem Athlon 1800+ mit 512 MByte RAM in Python 2.4.3 (kein Psyco) unter Ubuntu Linux 6.06 LTS.

Code: Alles auswählen

>>> lol(1000000)
Runtime: 0.735286951065
>>> lol(1000000)
Runtime: 0.733017921448
>>> lol(1000000)
Runtime: 0.734447002411
>>> lol(1000000)
Runtime: 0.734914064407
>>> lol(1000000)
Runtime: 0.735508918762
>>> lol(1000000)
Runtime: 0.733287096024
mfg Betz Stefan
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Montag 26. März 2007, 20:30

Hi,

Code: Alles auswählen

>>> lol(1000000)
Runtime: 0.21799993515
>>> lol(1000000)
Runtime: 0.218999862671
>>> lol(1000000)
Runtime: 0.219000101089
>>> lol(1000000)
Runtime: 0.21799993515
>>> lol(1000000)
Runtime: 0.21799993515
>>> lol(1000000)
Runtime: 0.21799993515
>>> lol(1000000)
Runtime: 0.219000101089
>>> lol(1000000)
Runtime: 0.219000101089
Ich hab einen 3.2 Ghz Intel CPU, 1.5 GB RAM mit Python 2.5 unter Windows XP (Ja, ich weiß ... :wink: )

Code: Alles auswählen

>>> lol(1000000)
Runtime: 0.483999967575
>>> lol(1000000)
Runtime: 0.469000101089
>>> lol(1000000)
Runtime: 0.484999895096
>>> lol(1000000)
Runtime: 0.469000101089
>>> lol(1000000)
Runtime: 0.469000101089
>>> lol(1000000)
Runtime: 0.483999967575
>>> lol(1000000)
Runtime: 0.483999967575
>>> lol(1000000)
Runtime: 0.469000101089
Hier das ganze nochmal mit Python 2.4, selbes System.


MfG,
Craven
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Dienstag 27. März 2007, 09:52

Helex hat geschrieben:Mal ne Frage:

dieses "Python psyco" ist doch nur ein compiler, richtig? Wird der offiziel bei installierten Linux Distris mitgeliefert oder muss man den nachträglich installieren?

Gruß vom fragenden Helex
Also eix sagt, schau auf http://psyco.sourceforge.net/ ...ansonsten sagt es aber auch: Falls es nicht standardmaessig installiert ist (wie unter Gentoo zB), dann macht dir dein Paketmanager damit keine Sorgen...

Ansonsten kannst du es aber auch ganz einfach ausprobieren. Direkt in der psyco-Dokumentation steht dieses Beispiel:

Code: Alles auswählen

    try:
        import psyco
        psyco.full()
    except ImportError:
        print 'Psyco not installed, the program will just run slower'
EDIT: Hiermit entschuldige ich mich fuer die miese Formulierung (zweimal "ansonsten" -.-)...
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Dienstag 27. März 2007, 15:48

Ich wusste garnicht das das so einfach geht mit Psyco.

Wird Attraktiv für mich.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Dienstag 27. März 2007, 15:59

Sr4l hat geschrieben:Ich wusste garnicht das das so einfach geht mit Psyco.

Wird Attraktiv für mich.
Ja, dass macht es auch so schoen fuer mich. Vielleicht gibt es auch Nachteile, die man auf den ersten Blick nicht sieht... aber im Moment kenne ich diese nicht.

Ansonsten verwende ich es eigentlich immer... vorallem in arithmetiklastigen Anwendungen.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Antworten