안녕하세요.
아무리 생각해도 안풀리는 문제가 있습니다.
많은 고수님들의 도움 부탁드립니다.
700 메가 정도의 파일을 먼저 생성하고(선 공간할당),
그 파일에 임의 위치에 병렬로 데이타를 기록하는 루틴을 개발했습니다.
근데, 문제는 선공간할당하는 시간이 너무 기네요.
이걸 단축시켜야 하는데, Low I/O 를 써봐도 17초 정도의 시간이 걸리네요.
_open()
_lseek() // 파일 포인터 이동 1024 * 1024 * 700
_write()
_close()
위의 순으로 선공간 할당 루틴이 되어있는데, _write()에서 너무 오래 걸립니다.
다른 방법은 없을까요.
Low-level함수써서 하지 마시고 델파이에서 지원하는 편리한 High-level 클래스를 쓰세요... 1초도 안걸려요 (제 컴퓨터에서 12ms걸리네요)
var
Stream: TFileStream;
begin
Stream := TFileStream.Create(파일명, 파일모드);
Stream.Size := 700메가;
..임의의 위치에 기록
Stream.Free;
end;
^^ 항상 즐코하세요...