Memory vs. CPU
Verfasst: Samstag 16. Januar 2016, 18:52
Aktuell ein Programm (im Original ca. 200 lines inkl. Aho-Corasick Algorithmus), welches - hier vereinfacht - im Grunde gut funktioniert:
Das Programm iteriert also drei Variablen [26^3] und vergleicht die Ergebnisse ("text") mit einer Wortliste ("lex"). Wenn man nun jedoch anstatt drei Variablen insgesamt 12 Variablen iteriert, knallt es den Arbeitsspeicher zusammen [26^12]. Dazu hätte ich ein paar Fragen:
1. Warum wird der Arbeitsspeicher überhaupt für die Iteration in Anspruch genommen? Der Speicher ist logischerweise knackevoll, die CPU hingegen so gut wie unbelastet..
2. Kann man Python dazu bringen, die Iteration "Schritt für Schritt" ablaufen zu lassen? Anstatt die komplette Iteration zunächst in den Arbeitsspeicher packen zu wollen?
3. Welche Möglichkeiten hat man, den durch die Iteration auf jeden Fall entstehenden "Memory Overflow" zu umgehen? Bitte um detaillierte Infooo..
Für Eure Antworten vielen Dank..bin erst seit zwei Monaten ein Pythonist und das Programm funktioniert an sich...aber am Memory Overflow scheitert es, sobald ich mein Anliegen tatsächlich umsetzen will..
QT
Code: Alles auswählen
...
alph = ["A", "B", "C"..."Z"]
lex = [""ABC", "BCD", "CDE", "DEF"]
for A, B, C in [(A,B,C) for A in alph for B in alph for C in alph...for E in alph]:
text = A+B+C
if any text in lex
print ("text")
1. Warum wird der Arbeitsspeicher überhaupt für die Iteration in Anspruch genommen? Der Speicher ist logischerweise knackevoll, die CPU hingegen so gut wie unbelastet..
2. Kann man Python dazu bringen, die Iteration "Schritt für Schritt" ablaufen zu lassen? Anstatt die komplette Iteration zunächst in den Arbeitsspeicher packen zu wollen?
3. Welche Möglichkeiten hat man, den durch die Iteration auf jeden Fall entstehenden "Memory Overflow" zu umgehen? Bitte um detaillierte Infooo..
Für Eure Antworten vielen Dank..bin erst seit zwei Monaten ein Pythonist und das Programm funktioniert an sich...aber am Memory Overflow scheitert es, sobald ich mein Anliegen tatsächlich umsetzen will..
QT