2014-10-16 3 views
1

나는 5-39 달 후에 erlangchicagoboss을 사용했습니다. 나는 내가 서버를 너무 오랫동안 사용하지 않을 때 서버가 너무 많은 부하를받는 것을 관찰했다. localhost에 웹 페이지를 새로 고치려면 최소한 20 -25 seconds이 필요합니다.Clear Chicagoboss 캐시

내 질문은 : 나는 ./rebar compile을 실행할 때

  • 어떻게됩니까? 그것이 내가이 명령을 실행 한 후 작은 시간을? (지금까지의 내가 알고있는이 뭔가를 컴파일합니다.)
  • 걸리는 이유는
  • 내가 chicagoboss의 로딩 시간을 최소화 할 수있다 아무것도입니다.
  • 우리는 memcacheCowboy을 사용하고 있습니다. memcache와 관련이 있습니까?

답변

2

나는 사용자가 ./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를 사용하는 경우 핫 코드 재로드를 사용하지 마십시오.