Ich brauche Hilfe! Ich kann das Problem nicht lösen, ich stoße an die Grenzen der Hardware - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich erinnerte mich an eine Website, auf der ein ähnliches Problem und Varianten seiner Lösung in C++ diskutiert wurden.
Danke, ich werde es lesen.
Es tut mir leid, was, wenn ich versuchen, 64 Bit oder mt wird nur 32 spinnen
Der Wechsel zu x64 verschiebt die Obergrenze nur nach hinten, und zwar nicht sehr weit. Ich muss nicht losrennen und 16 GB Speicher kaufen. ;)
1. Natürlich sollten Sie ein x64-System verwenden.
2. einen leistungsfähigeren Rechner in der Amazon EC2-Cloud mieten und die Berechnungen darauf durchführen.
3. Verwendung komprimierter Daten, Dekomprimierung im Speicher bei laufendem Betrieb. Reale Daten lassen sich besser komprimieren, wenn man sie in Streams (Vorzeichen/Mantisse/Exponent) aufteilt; man kann 12-Bit-Float verwenden (auf Kosten der Genauigkeit).
4: Führen Sie eine Berechnung mit einem Programm durch, das große Datenmengen verarbeiten kann (Matlab/R/etc).
1,2: Hier geht es darum, die Obergrenze zu verschieben, und Sie wollen das Problem lösen, ohne an eine bestimmte Zahl gebunden zu sein.
3. Das Problem ist nicht die Menge der Daten auf der Festplatte, sondern die Menge im Speicher. Ich kann sie um weitere 10-20 % komprimieren, aber auch das wird das Problem nicht lösen.
4. Ich hoffe, dass ich vorerst im Sandkasten bleiben kann. Damit spätere Kopierer/Synchronisierer nicht schreiben müssen...
Vielen Dank für Ihre Teilnahme!
Ein Wechsel zu x64 würde die Obergrenze nur nach hinten verschieben, und zwar nicht sehr weit. Ich muss doch nicht losrennen und weitere 16 GB Speicher kaufen, oder? ;)
Sie arbeiten nicht ständig mit dieser Art von Daten, oder? Schreiben Sie für x64 und führen Sie es bei Bedarf auf amazon aus. Sie können dort auch auf der Mikroinstanz debuggen.
Wenn Sie jedoch ständig mit diesem Problem konfrontiert sind, können Sie 64 GB Speicher für etwa 1.000 $ kaufen, z. B. Corsair Vengeance Pro CMY64GX3M8A2133C11.
Entweder Sie überdenken den Algorithmus so, dass er in einem Durchgang über die Daten arbeiten kann.
p.s. Sie können auch komprimierte Daten im Speicher ablegen und bei Bedarf dekomprimieren, wenn Sie genug Zeit haben, sie zu verarbeiten.
Danke, ich werde es lesen.
Der Wechsel zu x64 wird die Obergrenze nur nach hinten verschieben, und zwar nicht sehr weit. Ich kann doch nicht einfach losrennen und weitere 16 GB Speicher kaufen, oder? ;)
Option 1: Schneiden Sie die Datei in Stücke.
Option 2: Zerlegen Sie die Akte in Teile, aber systematisieren Sie sie auch. Wie ein Wort aus dem Wörterbuch. Beginnt mit "A" und sucht nach "A.txt". Auf diese Weise können Sie die Daten in Baumform anordnen (ähnlich einem Wörterbuch: Ordner A, B... in Ordner A Ordner AA, AB, usw.), die Suche wird sehr schnell sein.
Sie werden also viel lesen müssen, und das ist gut so:
virtuelle RAM-Disk zur Rettung ;)
und Sie werden kein Loch haben, und Sie werden die Geschwindigkeit mögen.
und das gesamte Volumen ist sofort verfügbar.
nicht in Stücke schneiden, denn Stücke sind für die Aufgabe nicht geeignet
1. Dies ist der Cache... Oder ich verstehe nicht, was Sie meinen. Meine Option, ständig die notwendigen Abschnitte zu lesen?
Nun... die Datei durch ihren Wrapper lesen, der Wrapper wird einen kleinen Teil der Datei im Speicher behalten und ohne Lesen ersetzen. Ich meine, Sie wissen, wie die Datei verwendet wird, so dass der Wrapper recht effizient ausfallen sollte.
Oh Scheiße...
Dieselben Eier, nur von der Seite. Das Lesen kann zwar beschleunigt werden, löst aber nicht das gesamte Problem.
Nun, ich dachte an sich wiederholende Aktionen in kleinem Rahmen.
Die Verwendung von Mapping bedeutet, den Cache von Wind zu nutzen, anstatt einen eigenen zu schreiben. Laden Sie den Chunk, lesen Sie ihn, entladen Sie ihn. Wenn der Chunk häufig verwendet wird, behält Wind ihn im Speicher.
3. Verwendung komprimierter Daten, Dekomprimierung im laufenden Betrieb. Reale Daten lassen sich besser komprimieren, wenn man sie in Streams (Vorzeichen/Mantisse/Exponent) aufteilt; man kann 12-Bit-Float verwenden (auf Kosten der Genauigkeit).
4. eine Berechnung mit einem Programm durchführen, das große Datenmengen verarbeiten kann (Matlab/R/etc).
Es gibt eine große Menge an Informationen (etwa 20 GB in einer Textdatei).
...
Und wenn diese Datei mit einem Archivierungsprogramm komprimiert wird, wie groß ist sie dann (da der Text sehr gut komprimiert sein sollte)?