12.6.5 The Hxcpp Cache

12.6.5 The Hxcpp Cache

hxcpp 컴파일 캐시는 프로젝트 간 객체 파일을 공유하는 데 사용됩니다. 이를 통해 외부 프로젝트와 함께 정적 라이브러리를 배송할 필요를 줄일 수 있는데, 라이브러리를 사용하는 개발자가 라이브러리를 한 번만 컴파일한 다음 프로젝트 간에 재사용할 수 있기 때문입니다.

캐시는 해싱 메커니즘을 사용해 파일이나 그 의존성의 내용이 변경되었는지 알려주고, 이를 컴파일러 버전과 플래그와 결합해 각 변경과 각 컴파일러 구성에 대한 특정 객체 파일을 만듭니다. 이는 또한 일부 공통 Haxe 런타임과 Haxe로 생성된 파일이 서로 다른 디렉토리에 있어도 프로젝트 간에 객체 파일을 공유할 수 있게 합니다.

추가 이점으로는 일부 파일을 소스 트리 밖에 유지하고 임시 파일을 쉽게 제거할 수 있는 점이 있습니다.

설정(Setup)

캐시를 활성화하려면 디렉토리를 따로 마련해야 합니다. 가능하면 SSD 같은 빠른 저장소여야 합니다. 이는 .hxcpp_config.xml 파일의 항목으로 가장 쉽게 할 수 있습니다:

<set name="HXCPP_COMPILE_CACHE" value="c:/hxcpp/cache" />
<set name="HXCPP_CACHE_MB" value="4000" />

명령줄 길이가 문제가 될 수 있는 일부 경계선 경우에서 경로를 짧게 유지하는 것이 도움이 될 수 있습니다.

캐시 크기 기본값은 1기가바이트입니다. 많은 경우 충분합니다. 그러나 여러 아키텍처와 많은 디버그 정보를 가진 대규모 프로젝트에서는 이 기본값이 "캐시 회전(cache churn)"으로 이어져 다시 사용될 가능성이 높은 파일도 캐시에서 축출될 수 있습니다. 캐시에 할당된 공간을 늘리면 도움이 될 수 있습니다.

캐시 사용(Using The Cache)

자체 라이브러리와 함께 캐시를 사용하려면 파일 그룹에 cache 항목이 있어 hxcpp에 그룹을 설계할 때 의존성 문제를 고려했음을 알려야 합니다.

<cache value="true" project="name" asLibrary="true" />

자세한 내용은 Files - cache를 참조하세요.

관리(Management)

일반적으로 컴파일할 때 hxcpp는 캐시 크기를 확인하고 지정된 캐시 크기를 유지하기 위해 가장 덜 사용된 파일을 축출합니다. 관리하기 쉽도록 캐시의 객체 파일은 "프로젝트"로 그룹화되며, hxcpp 빌드 도구를 사용해 객체 파일을 명시적으로 관리할 수 있습니다.

haxelib run hxcpp cache [command] [project]
  Perform command on cache, either on specific project or all. commands:
   clear -- remove all files from cache
   days #days -- remove files older than "days"
   resize #megabytes -- Only keep #megabytes MB
   list -- list cache usage
   details -- list cache usage, per file

다음으로 시작하세요:

haxelib run hxcpp cache list

캐시 사용량을 파악합니다.

출처: The Hxcpp Cache

더 알아보기