Algoritmo per copiare i dati più velocemente rispetto al provider di copie predefinito di Windows

0

Ho bisogno di un algoritmo in grado di copiare i dati (file / cartella) da un posto a un altro, più velocemente rispetto all'opzione predefinita di copia / incolla di Windows. Sto lavorando in vc ++. C'è qualche algoritmo con cui posso fare copia / incolla più velocemente.
Oppure C'è qualche altro suggerimento per eseguire questa attività?
Grazie

    
posta Himanshu 12.06.2014 - 08:18
fonte

1 risposta

1

La funzione copia / incolla di Windows ha diversi componenti.

  • Un'interfaccia grafica carina
  • Pre-analisi del lavoro da fare, per aiutare la GUI a fornire feedback positivi e rilevare i conflitti
  • Essenzialmente single tasking
  • Un'API interna molto veloce per copiare i file.

Secondo me è improbabile che tu possa scrivere codice che possa battere la funzione API di Windows CopyFile (). Puoi comunque usare il multi-threading per saturare il canale IO e se anche tu ometti la roba carina della GUI e la pre-analisi, allora probabilmente è il più veloce possibile.

Puoi testarlo abbastanza facilmente eseguendo diverse attività XCOPY allo stesso tempo e osservando il monitor delle risorse per vedere quando raggiungi il massimo throughput di IO.

Un ultimo pensiero: se stai copiando molti piccoli file ci possono essere dei vantaggi nel copiare i file che si trovano vicini tra loro per minimizzare il movimento della testina del disco. Dovresti testare per scoprire se questo è un fattore.

    
risposta data 15.06.2014 - 17:28
fonte

Leggi altre domande sui tag