소개:
대용량 버퍼를 바이너리 파일에 효율적으로 쓰는 것은 성능에 민감한 애플리케이션에 중요한 경우가 많습니다. 이 기사에서는 C에서 이 프로세스를 최적화하는 방법에 대한 질문을 살펴보겠습니다.
초기 접근 방식 및 병목 현상:
제공된 코드는 파일에 비해 성능이 떨어지는 것으로 보입니다. 복사 작업. 잠재적인 병목 현상은 다음과 같습니다.
최적화된 솔루션:
훨씬 더 빠른 접근 방식은 FILE* 및 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; }
이 코드는 SSD의 한계에 근접하는 약 220MB/s의 쓰기 속도를 달성했습니다.
추가 개선 사항:
코드 효율성을 더욱 향상시키기 위해 다음을 구현할 수 있습니다. 다음:
벤치마킹 및 결과:
다양한 버퍼 크기(1MB-4GB)를 사용하여 다양한 플랫폼(노트북 및 데스크톱)에서 코드 벤치마킹 공개 :
결론 :
요약하자면, C에서 바이너리 파일에 대용량 버퍼를 효율적으로 쓰려면, 고려 사항:
위 내용은 C에서 바이너리 파일 쓰기 속도를 어떻게 최대화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!