Programm nutzt nicht genug Rechenleistung
lima-city → Forum → Programmiersprachen → C/C++ und D
aufgefallen
berechnung
datum
feststelle
flaschenhals
frage
halten
hantieren
hardware
jemand
log
nutz
paar
packen
programm
speichern
string
stunden
verarbeiten
verwaltung
-
Das Programm soll mit einigen Daten hantieren und sie dann in eine Datei schreiben.
Als ich das Programm gestartet habe, fing es auch schon an fleißig zu rechnen.
Dennoch musste ich feststellen das die Berechnung ca. 10 Stunden dauern würde.
Ich frage mich warum das Programm sich nicht einfach mehr Rechnleistung nimmt bzw. ob ich jetzt gezwungen bin die Berechnung in mehreren Threads auzulagern.
Leider weiß ich nicht genau wie Multithreading funktioniert, also wenn jemand ein paar gute Links kennt ...
lg marina -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
1. Wie sieht denn die Hardware aus?
2. Vielleicht ist die Festplatte langsam? Versuch mal, den "Log" im Speicher zu halten und erst am Ende zu schreiben. Ähnlich kann es beim Lesen einen Flaschenhals geben.
3. Je nach Sprache ist Parallelisierung sogar recht einfach, welche nutzt du denn? -
Also ich nutze C++, mein Computer hat einen i5 und eine SSD.
Mir ist aufgefallen dass ich doch ein wenig oft auf die Platte schreibe, kann ich eine Zeichenkette mit einer Länge von 100 000 000 in einen string packen? -
C++ macht es dir nicht gerade am einfachsten mit der Verwaltung von Threads. Wenn aber der Flaschenhals tatsächlich die Festplatte ist (was durchaus sein kann), dann nutzen mehr Threads auch nicht. Du kannst den String mit 100MB zwar im Speicher halten, aber die Frage ist, ob das sinnvoll ist. Falls der String einmal länger wird könnte es sinnvoller sein den String in kleinere Blöcke zu unterteilen und diese dann (parallel) zu verarbeiten.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage