PDA

View Full Version : [Visual C++]Copia parallela lentissima


|_ArgH_|
10-06-2008, 18:11
Dunque per curiosità sto provando a fare un utility per effettuare backup di file, controllando la dimensione e le date di creazione e modifica.

Senza saperne troppo ho usato i CWinThread creadone un certo numero 3 per suddividersi la copia di molteplici files.

Solo che ho notato effettuando la copia in sequenza il tempo utilizzato è circa un terzo rispetto a quella multithreaded per files > 10-20mb .

E' normale??

dunque questo è quello che faccio:
HANDLE firstT=(AfxBeginThread(CopyFromToIndex,firstParam))->m_hThread;
HANDLE secondT=(AfxBeginThread(CopyFromToIndex,secondParam))->m_hThread;
HANDLE thirdT=(AfxBeginThread(CopyFromToIndex,thirdParam))->m_hThread;
dove i parametri Param sono puntatori a strutture contenti l'indice da cui copiare e l'offset di un array che contiene le informazioni di ogni file da copiare.

marko.fatto
10-06-2008, 18:13
si perchè la testina dell'hard disk deve continuare a saltellare a destra e sinistra quindi rallenta.. se fai 10 processi paralleli andrà circa 10 volte più piano :stordita:

|_ArgH_|
10-06-2008, 18:18
D'oh ci avrei dovuto pensare anche io 3 thread 3 volte più lento :muro: . Grazie
Mmm qualche suggerimento per velocizzare la copia? :D.
Senza magari scendere troppo a basso livello. ;)

marko.fatto
10-06-2008, 20:01
falla stare sempre in background e appena un file viene modificato lo aggiorna.. dagli la priorità più bassa così non ti rompe :stordita: