Bringt ja auch nur was wenn es Module gibt die als -O .pyc oder -OO .pyo importiert werden. Das eigentliche Script welches direkt aufgerufen wird, wird vom Interpreter (CPython natürlich nur, IronPython regelt das wohl etwas anders) nur on-the-fly in Bytecode verwandelt, somit muss es bei jedem Aufruf neu erstellt werden. Das ist aber ja meist nicht sonderlich problematisch, ich nutze -O oder -OO sowieso fast nie.modelnine hat geschrieben:python -O bringt ganz davon abgesehen so gut wie gar nix, was ja auch nicht anders zu erwarten war.
Hilfe bei Umsetzung
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Dass es keine .pyo-s gibt hat absolut nichts damit zu tun dass -O wenig bringt.
-O ist nicht dafür gedacht irgendwelche optimierten Module zu laden, sondern während des Compilierschritts einige Optimierungen bei der Erstellung des Byte-Codes vorzunehmen. Das sind momentan kaum welche (zum Beispiel nur das assert und if __debug__ "vergessen" wird), und dementsprechend ist der entstandene Bytecode kaum schneller.
Wenn irgendwann mal optimierter Bytecode für die Python VM erzeugt werden kann, dann wird -O auch was bringen.
--- Heiko.
-O ist nicht dafür gedacht irgendwelche optimierten Module zu laden, sondern während des Compilierschritts einige Optimierungen bei der Erstellung des Byte-Codes vorzunehmen. Das sind momentan kaum welche (zum Beispiel nur das assert und if __debug__ "vergessen" wird), und dementsprechend ist der entstandene Bytecode kaum schneller.
Wenn irgendwann mal optimierter Bytecode für die Python VM erzeugt werden kann, dann wird -O auch was bringen.
--- Heiko.
Wollte nur sagen das ich das gleiche Datum herausbekommen habe. Und das ich die gleiche "Pi-Datei" benutzt habe.
@modelnine: Was meintest Du denn mit zeilenweise einlesen? Fängst Du beim Einlesen schon an die Daten aus dem `set` zu löschen? Das war mir zu aufwändig.
Du könntest statt Psyco ja auch Teile mit Pyrex übersetzen. Das sollte doch auch auf 64-Bit Architekturen funktionieren, oder?
@modelnine: Was meintest Du denn mit zeilenweise einlesen? Fängst Du beim Einlesen schon an die Daten aus dem `set` zu löschen? Das war mir zu aufwändig.
Du könntest statt Psyco ja auch Teile mit Pyrex übersetzen. Das sollte doch auch auf 64-Bit Architekturen funktionieren, oder?
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Zeilenweise einlesen bedeutet dass man ja im Prinzip nur einen Iterator braucht der eine Zeile nach der anderen bekommt und direkt wenn er einen Teilstring ausgewertet hat diesen aus dem Set probiert zu löschen.
Diese Art des Iterators hab ich beibehalten, nur braucht der Iterator auch aus der Eingabedatei die Daten nur zeilenweise. Man kann also die Daten entweder "vorlesen", oder aber sie einzelnen aus der Datei rausholen. Und das "vorlesen" braucht zwar massig mehr Speicher (ca. 400 MB), aber ist eben schneller als über die Zeilen zu iterieren und immer nur eine im Speicher zu haben...
--- Heiko.
Diese Art des Iterators hab ich beibehalten, nur braucht der Iterator auch aus der Eingabedatei die Daten nur zeilenweise. Man kann also die Daten entweder "vorlesen", oder aber sie einzelnen aus der Datei rausholen. Und das "vorlesen" braucht zwar massig mehr Speicher (ca. 400 MB), aber ist eben schneller als über die Zeilen zu iterieren und immer nur eine im Speicher zu haben...
--- Heiko.
Zuletzt geändert von modelnine am Mittwoch 18. Januar 2006, 12:40, insgesamt 1-mal geändert.
hmmm,
habs aus zeitmangel nicht probiert, aber ist das "löschen" nicht fehlerhaft
z.b:
EDIT: ich glaub jetzt hab ichs kapiert ihr lauft den string durch und löscht aus der liste der Geburtsdaten ... und nicht umgekehrt
habs aus zeitmangel nicht probiert, aber ist das "löschen" nicht fehlerhaft
z.b:
löschman hier: 21071981 wird nicht mehr der 11. sondern nur noch der 1. gefunden, 1111944 statt 11111944210719811111944
EDIT: ich glaub jetzt hab ichs kapiert ihr lauft den string durch und löscht aus der liste der Geburtsdaten ... und nicht umgekehrt
Grüße
Matthias
- Fluchen befreit von Kummer und Leid -
Matthias
- Fluchen befreit von Kummer und Leid -