2012-10-10 2 views
0

나는 웹 브라우저에서 지속적으로 표시되고 업데이트되는 로그에 데이터를 기록하는 C++에서 시간이 중요한 응용 프로그램을 작성하고 있습니다 (변경할 수 없으므로 권장하지 마십시오). 다른 솔루션을 사용하십시오). 순간 잠복 파일 핸들 유지

내가합니다 ( 전체 파일 각 덤프를 다시 작성해야하는) 데이터를 덤프 100ms마다 같은 것을 할 :

ofstream log_file(log_path); 
//Do some error handling 
log_file << "Quite some data" << endl; 
log_file.close(); 

문제는 그 프로그램을 같이해야하는 모든 전화를 몇 통 ~ 20msec 로그를 열려면 일부 시스템에서 많은 hdd 사용을 유발하는 것으로 보입니다 (hdd가 모든 재개 된 프로세스에서 파일을 다시 찾고 있음을 의심합니다).

지연 및 하드 디스크 사용을 최소화하기 위해 파일 포인터가 시스템에 잘 유지되도록 파일 핸들을 항상 열어 둘 수있는 방법이 있습니까? 필요한 경우 다른 Write-API로 기꺼이 전환 할 것입니다.

답변

1

로그 파일을 /dev/shm과 같은 메모리 내 파일 시스템에 보관할 수 있습니다. 이렇게하면 로그 파일이 너무 커서 디스크에 들어 가지 않는 한 디스크에 액세스하지 못하게됩니다.

+0

아마 윈도우 응용 프로그램이라고해야합니다. – Listing

+0

@ 오, 정열이 충분합니다. –

+0

글쎄 여전히 아이디어가 좋다, 나는 주변을 둘러 보았고 창문을 위해 그것을 할 수있는 방법을 발견했다. 그래서 이것은 여전히 ​​내 질문에 답한다. – Listing