:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
11/03/07 22:36
멀티쓰레드를 사용해서, 파일 복사할때 이용해보는 것은 어떨까요?
예) (1) 복사 Thread 생성(2개) (2) 1번 Thread는 0~399MB복사하는 구조 (3) 2번 Thread는 399MB~800MB복사하는 구조 (4) 복사 명령이 들어오면 1,2번 Thread 동작 이렇게 하면 좀 더 빨라지지 않을까 생각합니다. 그러면 단일 Thread복사하는 것 보다는 여러개(10개정도?)하는것이 빠를것 같습니다. 물론 이것도 여러번 테스트해서 결과를 비교해봐야 할 것입니다. Thread 함수에 진입하는것도 시간에 들어가니까요.
11/03/07 23:25
Block read & write 인 fread() & fwrite() 를 쓰면 반칙인가요? 아니라면 아마도 가장 빠른 방법일 겁니다. 사용법은 구글링하시구요.
11/03/08 04:48
멀티스레드 쓰면 더 느려지구요.
하드->하드 복사의 경우 한번에 많은 용량 읽었다가 한번에 쓰는 방식이 빠릅니다. 헤드가 읽는 위치랑 쓰는 위치를 최대한 적게 왔다갔다하게 만드는거죠. 하지만 800MB나 되면 한번에 모두 메모리에 올리게 되면 메모리 용량 문제로 느려질 수 있으니 적당한 크기로 하는게 필요하겠네요. 크기는 클러스터 사이즈의 배수가 되도록 하시구요. 하드->USB의 경우 읽는대로 쓰는게 빠를 것 같네요. 물리적으로 다른 하드간에도 마찬가지이구요. 그리고 당연히 putc, getc로 1byte씩 처리하는것보다 블록단위로 하는게 빠르구요.
|