전체 c ++ 프로젝트를 컴파일하는 데 걸리는 시간을 향상시키기 위해 다양한 방법을 테스트했습니다. 현재 ~ 5 분이 소요됩니다. distcc, ccache 등을 실험했습니다. 최근에 전체 프로젝트를 RAM 드라이브에 복사 한 다음 컴파일하면 컴파일 시간이 원본의 30 % (1.5 분)로 단축됩니다.
분명히, RAM 드라이브에서 작업하는 것은 실용적이지 않습니다. 그래서 누구나 OS가 항상 특정 디렉토리를 캐시하도록 유지하는 방법을 알고 있습니까? 나는 여전히 디렉토리가 평소처럼 디스크에 다시 동기화되기를 원하지만 항상 메모리에 데이터 사본을 원합니다. 이것이 가능한가?
편집 :
가능한 해결책으로, 우리는 rsync
10 초마다 실행되는 데몬을 시작 하여 디스크 드라이브를 RAM 드라이브와 동기화하려고 생각했습니다 . 그런 다음 RAM 드라이브에서 컴파일을 실행합니다. 은 rsync
빨리 타오르는됩니다 만, 정말 일 것이다? 분명히 OS가 더 잘할 수 있습니다 ....
time
편집 한 결과를 우리와 공유 할 수 있습니까? 일부 논쟁을 불러 일으킬 것입니다. make clean && /usr/bin/time -v make
(bash 내장 time
명령을 사용하지 마십시오 )
time
내장 된 bash ( help time
)는 man time
I / O, 컨텍스트 전환에 관한 GNU 시간 ( ) 보다 세부 사항이 적습니다 (자세한 옵션은 없습니다) .