Quote:
Originariamente inviato da AnonimoVeneziano
Non puoi sperare di usare la STL e di andare veloce ... 
|
In realtà il problema era che non esiste un modo per assegnare memoria preesistente a std::string, e quindi non avrei potuto usare il "trucco" che ha tagliato di 10 volte il tempo...
ma come dicevo, a pari algoritmo non sono più lente di C, e di sicuro il codice esce molto più bello a vedersi (e la condivisione di memoria che ho usato è come chiedere bug a manetta

)
EDIT: ecco il codice
main.cpp
LineBuffer.h
common_header.h
EDIT2: ho provato a farlo girare su un disco in rete (lag come se piovesse, 13 mb/s max) e come previsto ci mette quasi 1.6 secondi... un dettaglio interessante però è che già alla 3a run ci metteva solo 66 ms, il che prova che Windows è abbastanza furbo da mettere in cache i file usati di recente sul disco più veloce