Bonjour à tous,
Je cherche conseil sur les fonctions d'écriture de fichiers. Je developpe une application qui doit écrire des fichiers à 500 Mo/s (station bien dimensionnée bien sur ^^). j'alloue préalablement un tableau de données en mémoire que qui me sert ensuite pour nourrir les fonctions d'écriture.
J'ai réalisé quelques tests pour évaluer les performances d'écritures des fonctions que je connais :
Et globalement, seules les 2 premières méthodes semblent donner des résultats convenables. Je suis assez surpris de la performance médiocre de la fonction C qui devrait être la plus rapide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 CFile file(str,CFile::modeCreate | CFile::modeWrite); file.Write(Buffer,taille); file.Close(); HANDLE hFile = CreateFile(str2, GENERIC_ALL,0,0,CREATE_ALWAYS,FILE_FLAG_WRITE_THROUGH,0); WriteFile(hFile,Buffer,taille,&dwBytesWritten,&o); CloseHandle(hFile); std::ofstream File(str2,ios.binary); File.write((char*) Buffer,taille); File.close(); FILE* f; fopen_s(&f,str3.GetBuffer(),"w"); fwrite(Buffer,1,taille,f); fclose(f); CStdioFile file2(str2,CStdioFile::modeCreate | CStdioFile::modeWrite); file2.Write(Buffer,taille); file2.Close();
Est-ce que certains d'entre vous voient d'autres méthodes, des astuces ou des erreurs dans mon code pour augmenter la vitesse d'écriture?
Merci d'avance.
Pense a mettre la balise code, Merci Farscape
Partager