Ich brauche Hilfe! Ich kann das Problem nicht lösen, ich stoße an die Grenzen der Hardware - Seite 18

 

Testskript und Ausführungsergebnisse.

HDD:

2014.08.22 21:16:43.584 sTest_ReadWriteBIN EURUSD,M1: 100000 secuences writed in 39.8 sec
2014.08.22 21:17:24.174 sTest_ReadWriteBIN EURUSD,M1: 4156 Mb loaded in 40.0 sec (103.9 MB/sec)

RAM-Laufwerk:

2014.08.22 21:22:15.170 sTest_ReadWriteBIN EURUSD,H1: 100000 Sek. Abschreibung in 27.6 Sek.
2014.08.22 21:22:42.805 sTest_ReadWriteBIN EURUSD,H1: 4158 Mb geladen in 27.6 sec(150.4 MB/sec)

Trotzdem nicht beeindruckend. Zugegeben, die Testbedingungen sind im Moment nicht gerade sauber, da auf dem Computer eine Menge Dinge laufen.

Ich werde es später noch einmal tun.

Dateien:
 
komposter:
Ich vermute, dass man die Lesefunktion gegen die WinAPI-Analogie austauschen kann und eine Geschwindigkeitssteigerung von mindestens 2-3 Mal für die RAM-Disk erhält.
 
komposter:

TheXpert:
Übrigens, wenn Sie den Startpunkt jeder Sequenz kennen, können Sie mit einer binären Suche nach den gewünschten Daten suchen, da die Trades nach Zeit geordnet sind.

+1, danke für die Idee.

Sie könnten auch die Interpolationssuche anwenden, die bei dieser Aufgabe wahrscheinlich noch schneller funktionieren würde.
 
TheXpert:
Ich vermute, dass Sie das Lesen durch das analoge WinAPI ersetzen werden und einen Geschwindigkeitsgewinn von mindestens 2-3 Mal für die RAM-Disk erhalten

Nur FileOpen soll langsam sein, während Lesen schnell sein soll. Aber ich werde nachsehen.

anonymous:
Sie können auch die Interpolationssuche anwenden, die bei dieser Aufgabe wahrscheinlich noch schneller ist.

Cool, danke.

 
komposter:
...

Trotzdem nicht beeindruckend.

...

In C++ geschieht dies durch fread in einen 64K-128K Puffer, das Parsen mit einem eigenen Parser ist besser, da sscanf-types sehr langsam sind.
 
kazakov.v:
In C++ wird dies durch fread in einen 64K-128K Puffer erledigt, das Parsen ist besser mit einem eigenen Parser, da sscanfs sehr langsam sind.

In C++ können Sie dies ohne Parser tun, wenn:

Wenn man die Idee 10-mal wiederholt, kann man eine andere Datei mit den Werten der Startpositionen der Sequenzen in einer anderen Datei beginnen, dann braucht man nicht einmal die Anzahl der Transaktionen in der Sequenzstruktur zu speichern.

 
marketeer:
Da das Problem eher akademisch ist (es sieht aus wie eine Frage für die Einstellung eines Programmierers) und viele ihr Interesse daran bekundet haben, warum formulieren wir es nicht strenger in Bezug auf das Format der Eingabedatenbeschreibung, und jeder könnte 20 Gigabyte an Testdaten erzeugen und seine praktische Lösung einreichen?

+100

Die Aufgabe ist nicht trivial, aber es gibt noch nicht eine einzige Zeile Code. Andrey, viele Leute hier sind interessiert - formulieren Sie die Aufgabe, bieten Sie Testdaten an. Machen wir ein Sportprogramm.

 
C-4:

+100

Die Aufgabe ist nicht trivial, aber es gibt noch nicht eine einzige Zeile Code. Andrey, viele Leute hier sind interessiert - formulieren Sie die Aufgabe, bieten Sie Testdaten an. Lassen Sie uns ein paar Sportprogramme machen.

Die Aufgabe ist bereits gestellt.
 
Vinin:
Die Aufgabe ist bereits gestellt.
Benötigt werden Testdaten + Pseudocode, mit allgemeinen Grundsätzen der Datenverarbeitung.
 
Warum die Optionen aus der Datenbank durchgehen? Wäre es nicht besser, Angebote aus der Historie nach den Kriterien zu generieren?
Grund der Beschwerde: