Ist es möglich, threads zu beschleunigen-Datei Lesen?

Ich Lesen möchte eine Datei so schnell wie möglich (40k Zeilen) [Edit : der rest ist veraltet].

Edit: Andres Jaan Tack schlug vor, eine Lösung basierend auf einem thread pro Datei, und ich möchte sicher sein, ich habe diese (so ist dies der Schnellste Weg) :

  • Ein thread pro Eintrag-Datei liest, im ganzen und die Bestände Ihrer Inhalte in einem container assoziiert (-> wie viele Container gibt es den Eintrag Dateien)
  • Einem thread berechnet die lineare Kombination der in jeder Zelle Lesen von der Eingabe-threads an, und die Bestände der Ergebnisse in der exit-container (in Verbindung mit der output-Datei).
  • Einem thread schreibt blockweise (alle 4 kB an Daten, also etwa 10 Zeilen) die Inhalte des output-container.

Soll ich ableiten, daß ich nicht verwenden m-mapped-Dateien (weil das Programm auf standby zu warten, für die Daten) ?

Dank aforehand.

Aufrichtig,

Mister mystère.

  • Nicht jedes OS wird auch Sie starten mit 40.000 threads vor dem ausführen von out of virtual memory.
  • Eine Frage, wie das macht mich Frage mich, ob Sie nähert sich dem problem der falsche Weg. Vielleicht anstatt zu versuchen, herauszufinden, wie die Datei zu Lesen, so schnell wie möglich, sollten Sie sehen, ob es einen Weg gibt, um zu vermeiden, dass die Datei zu Lesen, an alle. (Zum Beispiel, könnten Sie vielleicht die Datei-Daten bereits in den Speicher geladen, im Voraus, oder redesign Ihrer app, so dass die Datei kleiner ist oder unnötig)
  • Sie können nicht Lesen 40k mal auf die Festplatte zur gleichen Zeit. Auch jeder anständige OS würden Sie einfach leugnen, die Schaffung von 40k threads und nicht zu erwähnen, dass der Versuch, so viele threads verlangsamen würde, was Sie tun wollen... macht es nicht schneller.
  • Sie werden Ihre Zeit verschwenden, 40k ist nicht eine große Größe und wahrscheinlich nicht die Quelle des Engpasses. Nur profiling wird Ihnen sagen, die Quelle des Engpasses. Bis sich jemand beschwert sich über performance, Fokus auf Korrektheit und Robustheit. NICHT OPTIMIEREN, BIS SIE HABEN PROFILIERT.
  • Ich wollte die Kerne relais selbst : 8 Linien im parllel, die erste zu beenden, nimmt die nächste, und so weiter. Zu wissen, dass es absolut notwendig für mich, zu Lesen, diese Dateien... Aber Andres Jaan Tack fast beantwortet meine Frage perfekt, schauen Sie unter.
Schreibe einen Kommentar