나는 사용자가 ./init-dev.sh
을 사용한다고 가정합니다. 이 스크립트는 자동으로 다시로드하는 기능을 제공합니다.이 기능은 개발 중에는 정말 좋지만 느려질 수 있습니다. 모든 .beam
파일을 검사하고 해당 파일 .erl
이 나중에 수정 된 경우 다시 컴파일해야 함을 의미합니다. 재 컴파일은 모든 요청에 대해 수행됩니다. 이전 파일 대신 실제로 새 파일 .beam
을 만들지는 않습니다. "즉시"컴파일하고로드하므로 첫 수정 후에 아무 것도 변경하지 않으면 파일을 다시 컴파일해야합니다.
큰 파일 수를 약간 수정하면이 작업이 시스템에 큰 영향을 줄 수 있습니다. memcache 나 Cowboy와는 아무 관련이 없습니다. 파일을 정기적으로 컴파일하면됩니다.
몇 가지 트릭 : 그것은 모든 종속성을 통과하기 때문에
./rebar compile
가 느릴 수 있습니다, ./rebar compile skip_deps=true
을 시도합니다. 이것은 훨씬 빠릅니다!
- 이 CB 파일을 수정하고 컴파일하려고 했어도 여전히 대기 할 필요가없는 경우
./rebar compile apps=your_app_name,boss
을 시도하십시오. 모든 종속성을 사용하는 모든 응용 프로그램을 컴파일해야하므로 boss_db
을 수정 한 경우 ./rebar compile apps=your_app_name,boss,boss_db
을 호출해야합니다.
- 프로덕션 환경에서 핫 코드를 다시 사용할 수 있습니다. 컴파일 후
./init.sh reload
을 호출하지만 은 memcache와 함께 작동하지 않습니다.! memcache 드라이버가 적절한 OTP 응용 프로그램이 아니며 핫 코드를 다시로드 한 후에도 업데이트되지 않습니다. 오래된 코드를 사용하는 두 번째 핫 코드 재로드 프로세스가 제거되고 memcache에 대한 연결이 끊어집니다. 따라서 memcache를 사용하는 경우 핫 코드 재로드를 사용하지 마십시오.