Pengenalan:
Menulis penimbal besar kepada fail binari dengan cekap adalah selalunya penting untuk aplikasi sensitif prestasi. Dalam artikel ini, kami akan meneroka persoalan tentang cara mengoptimumkan proses ini dalam C .
Pendekatan Awal dan Masalah:
Kod yang disediakan nampaknya kurang berprestasi berbanding fail operasi salin. Kesesakan yang berpotensi termasuk:
Penyelesaian Dioptimumkan:
Lebih pantas pendekatan ialah menggunakan FILE* dan fwrite:
#include <stdio.h> const unsigned long long size = 8ULL*1024ULL*1024ULL; unsigned long long a[size]; int main() { FILE* pFile; pFile = fopen("file.binary", "wb"); for (unsigned long long j = 0; j < 1024; ++j) { // Data generation fwrite(a, 1, size*sizeof(unsigned long long), pFile); } fclose(pFile); return 0; }
Kod ini mencapai kelajuan tulis kira-kira 220MB/s, menghampiri had SSD.
Pemurnian Lanjut:
Untuk meningkatkan lagi kecekapan kod, kami boleh melaksanakan berikut:
Penandaarasan dan Keputusan:
Penandaarasan kod pada platform berbeza (Kom Riba dan Desktop) dengan saiz penimbal yang berbeza-beza (1MB-4GB) didedahkan :
Kesimpulan:
Ringkasnya, untuk cekap menulis penimbal besar ke fail binari dalam C , pertimbangkan:
Atas ialah kandungan terperinci Bagaimana Saya Boleh Memaksimumkan Kelajuan Tulis Fail Binari dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!