Ho bisogno di aiuto! Non riesco a risolvere il problema, sto incontrando delle limitazioni hardware - pagina 18

 

Script di test e risultati di esecuzione.

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)

Unità RAM:

2014.08.22 21:22:15.170 sTest_ReadWriteBIN EURUSD,H1: 100000 svalutazioni in 27.6 sec
2014.08.22 21:22:42.805 sTest_ReadWriteBIN EURUSD,H1: 4158 Mb caricati in 27.6 sec(150.4 MB/sec)

Ancora non è impressionante. È vero, le condizioni di prova non sono esattamente pulite in questo momento, con un sacco di roba che gira sul computer.

Lo farò di nuovo più tardi.

File:
 
komposter:
Ho il sospetto che si possa scambiare la lettura con l'analogo WinAPI e ottenere un aumento di velocità di almeno 2-3 volte per il disco RAM
 
komposter:

TheXpert:
A proposito, se conosci il punto di partenza di ogni sequenza, puoi cercare le date desiderate con una ricerca binaria, dato che gli scambi sono ordinati per tempo.

+1, grazie per l'idea.

Si potrebbe anche applicare la ricerca per interpolazione, che probabilmente funzionerebbe ancora più velocemente in questo compito.
 
TheXpert:
Ho il sospetto che potrete sostituire la lettura con l'analogo WinAPI e ottenere un guadagno di velocità di almeno 2-3 volte per il disco RAM

Solo FileOpen dovrebbe essere lento, mentre la lettura dovrebbe essere veloce. Ma controllerò.

anonimo:
Potete anche applicare la ricerca per interpolazione, che probabilmente sarà ancora più veloce in questo compito.

Bene, grazie.

 
komposter:
...

Ancora non è impressionante.

...

In C++ è fatto da fread a 64K-128K buffer, il parsing con il proprio parser è meglio, perché sscanf-types è molto lento.
 
kazakov.v:
In C++ questo è fatto da fread a 64K-128K buffer, l'analisi è meglio con il proprio parser, perché sscanfs è molto lento.

In C++ si può fare senza un parser se:

spingendo l'idea 10 volte - iniziate un altro file con i valori delle posizioni iniziali delle sequenze in un altro file, poi non avete nemmeno bisogno di memorizzare il numero di transazioni nella struttura della sequenza.

 
marketeer:
Poiché il problema è piuttosto accademico (sembra una domanda per assumere un programmatore) e molti hanno espresso interesse in esso, perché non formularlo più strettamente in termini di formato di descrizione dei dati di input, e ognuno potrebbe generare 20 Giga di dati di prova e presentare la loro soluzione pratica?

+100

Il compito non è banale, ma non c'è ancora una sola riga di codice. Andrey, molte persone qui sono interessate - formulare il compito, offrire dati di prova. Facciamo una programmazione sportiva.

 
C-4:

+100

Il compito non è banale, ma non c'è ancora una sola riga di codice. Andrey, molte persone qui sono interessate - formulare il compito, offrire dati di prova. Facciamo un po' di programmazione sportiva.

Il compito è già stato fissato.
 
Vinin:
Il compito è già stato fissato.
Servono dati di test + pseudocodice, con principi generali di gestione dei dati.
 
Perché passare attraverso le opzioni del database? Non sarebbe meglio generare le offerte dalla storia secondo i criteri?