2013-02-19 2 views
11

나는 리눅스에서 일하고 있는데 하위 디렉토리가 있고 하위 디렉토리에 파일이 있습니다. 파일의 변경 사항을 모니터링해야합니다. C++에서는 부스트를 사용하고 있습니다. 30 초마다 모든 디렉토리를 살펴보고 last_write_time을 확인합니다. 주로 작동합니다. 그러나이 작업이 실행될 때마다 내 CPU가 작동하지 않고 상위 15-25 % CPU 사용 이 표시됩니다. 나는 inotify에 대해 읽었습니다. inotify를 사용하면 CPU 사용량이 다소 줄어들거나 개선 될 수 있습니까? 제가하고있는 일에 좋은 대안이 있습니까?모니터링 파일 변경 C++ linux

+6

모든 파일과 하위 디렉토리를 거치지 않아도되므로 성능이 크게 향상됩니다. 대신 파일이나 디렉토리가 변경되면 알림을 받게됩니다. Inotify는 Linux를 사용하는 가장 좋은 방법 일 것입니다. –

+0

요아킴에 감사드립니다. 나는 그것을 시도 할 것이다. – user1566277

답변

13

inotify를 사용할 때 변경 사항이 있는지 확인하기 위해 모든 파일을 폴링 할 필요가 없습니다. 감시 된 파일이나 디렉토리가 변경되면 알려주는 콜백 시스템이 제공됩니다.

커널/파일 시스템에 이미이 정보가 있으므로 리소스/CPU 사용량이 다른 응용 프로그램으로 옮겨지지 않고 실제로 줄어 듭니다.

Monitor file system activity with inotify은 inotify를 사용하는 이유에 대해 자세히 설명하고 기본 사용법을 보여주고 설정하는 데 도움이됩니다.

+0

답변에 많은 감사드립니다. 나는 그것을 시도 할 것이다. – user1566277