Hilfe bei Umsetzung

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.
Antworten
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

modelnine hat geschrieben:python -O bringt ganz davon abgesehen so gut wie gar nix, was ja auch nicht anders zu erwarten war.
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
modelnine
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.
BlackJack

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
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.
Zuletzt geändert von modelnine am Mittwoch 18. Januar 2006, 12:40, insgesamt 1-mal geändert.
mr.hide
User
Beiträge: 108
Registriert: Montag 29. August 2005, 14:02

hmmm,

habs aus zeitmangel nicht probiert, aber ist das "löschen" nicht fehlerhaft


z.b:
210719811111944
löschman hier: 21071981 wird nicht mehr der 11. sondern nur noch der 1. gefunden, 1111944 statt 11111944


EDIT: ich glaub jetzt hab ichs kapiert ihr lauft den string durch und löscht aus der liste der Geburtsdaten ... und nicht umgekehrt :oops:
Grüße
Matthias

- Fluchen befreit von Kummer und Leid -
Antworten