mmap을 이용해서 500메가 바이트 정도의 파일을 카피 하려고 합니다.
mmap을 사용 할 때 실제로 메모리 점유율이 올라가는지 궁금합니다.
예를 들어 500메가 바이트 짜리 파일을 mmap으로 카피하면 500메가 바이트의
메모리가 잡히는건지 궁금합니다.
그리고 실제 메모리를 점유한다면 그 점유율을 줄일 수 있는 다른 팁이 있으면 부탁 드립니다.
물리적 메모리가 부족하다면 스왑을 사용하기야 하겠지만 실제로 mmap64 등으로 10G를 잡았다고 해서 10G의 램과 스왑을 사용하지는 않습니다. 필요하다면 그때그때마다 페이징을 하지요.
(리눅스에서는 해본적이 없어서 확신할수는 없지만) 가능할 것입니다. 단, 단순한 파일 복사를 위해서 mmap을 하신다면 좀 찝찝하실지도 모르겠습니다. 작업중 종료를 시켜도 전체크기의 destination이 잡혀있다거나, 생각보다 성능이 떨어진다거나 등등이죠. :-)
homeless
BSD나 GNU fileutils의 cp는 대량 복사시에 속도 향상을 위해 mmap()을 활용하도록 만들어져 있습니다. 한번 소스를 살펴보시면 힌트를 얻을 수 있을 것입니다.
-- 익스펙토 페트로눔
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
그렇지 않습니다.
물리적 메모리가 부족하다면 스왑을 사용하기야 하겠지만
실제로 mmap64 등으로 10G를 잡았다고 해서 10G의 램과 스왑을 사용하지는 않습니다. 필요하다면 그때그때마다 페이징을 하지요.
(리눅스에서는 해본적이 없어서 확신할수는 없지만) 가능할 것입니다.
단, 단순한 파일 복사를 위해서 mmap을 하신다면 좀 찝찝하실지도 모르겠습니다. 작업중 종료를 시켜도 전체크기의 destination이 잡혀있다거나, 생각보다 성능이 떨어진다거나 등등이죠. :-)
homeless
BSD나 GNU fileutils의 cp는 대량 복사시에 속도 향상을 위
BSD나 GNU fileutils의 cp는 대량 복사시에 속도 향상을 위해 mmap()을 활용하도록 만들어져 있습니다. 한번 소스를 살펴보시면 힌트를 얻을 수 있을 것입니다.
--
익스펙토 페트로눔
댓글 달기