|
방금생성한파일이라 텅 비어있으니 읽을게 없잖아요
LeeD 님이 쓰신 글 :
: 안녕하세요.
:
: 제가 파일 생성해서 Read하는 속도를 측정하는
:
: 오픈소스 하나를 구해서 빌더에 적용시키는 중인데요.
:
: static HANDLE hFile;
: static volatile bool WaitFlag;
: static int BufSize = 1024 * 1024;
: static int Loop = 100 * 1024 * 1024;
: static char* buf = NULL;
:
: void TMain::Sequential()
: {
: int count;
: double score, maxScore;
: int i, j;
: DWORD readSize, writeSize;
: bool result;
:
: double StartTime, Time; <--- 제가 추가한 부분
:
: //////////////////////////////////////////////
: // Read Test
: //////////////////////////////////////////////
: score = 0.0;
: maxScore = 0.0;
: for(j = 0; j <= 5; j++)
: {
:
: hFile = CreateFile(
: "C:\\TestCreate.bin", <--- 제가 추가한 부분
: GENERIC_READ|GENERIC_WRITE,
: 0,
: NULL,
: OPEN_ALWAYS, <--- 오픈소스에서는 "OPEN_EXISTING" 였는데 생성이 안되서 바꿈
: FILE_ATTRIBUTE_NORMAL|FILE_FLAG_NO_BUFFERING|FILE_FLAG_SEQUENTIAL_SCAN,
: NULL);
:
: count = 0;
: WaitFlag = TRUE;
: StartTime = GetCurrentTime(); <--- 제가 추가한 부분
:
: for(i = 0; i < 100; i++)
: {
: result = ReadFile(hFile, buf, BufSize, &readSize, NULL);
: if(result)
: {
: count++;
: }
: else
: {
: CloseHandle(hFile);
: return ;
: }
: }
: SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
:
: CloseHandle(hFile);
: Time = GetCurrentTime(); <--- 제가 추가한 부분
:
: if(j != 0)
: {
: score = count * (BufSize / 1000.0) / (Time - StartTime);
: if(score > maxScore)
: {
: maxScore = score;
: }
: Memo1->Lines->Strings[0] = (String)score; <--- 제가 추가한 부분
: }
: }
: }
: void __fastcall TMain::Button1Click(TObject *Sender)
: {
: Main->Sequential();
: }
:
: 이렇게 해놓고 실행을 시키면 ReadFile에서 리턴값이 false로 나와서 걍 끝나버려요ㅜ
:
: 어디가 잘못 됬나요?
|