首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除Chicagoboss缓存

清除Chicagoboss缓存
EN

Stack Overflow用户
提问于 2014-10-16 07:09:02
回答 1查看 154关注 0票数 1

我使用erlangchicagoboss已经有5-6个月了.我观察到,当我很长时间不运行./rebar compile时,服务器就会承受太多的负载。至少需要20 -25 seconds才能在localhost上重新加载任何网页。

我的问题是:

  • 当我运行./rebar compile时会发生什么?
  • 在运行这个命令之后,为什么要花很短的时间?(据我所知,这会编译一些东西)。
  • 有什么我可以做的,以尽量减少装货时间在奇卡博斯。
  • 我们使用的是memcacheCowboy。这和memcache有关系吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-16 11:50:32

我想,您使用的是./init-dev.sh。这个脚本提供自动重新加载,这在开发过程中是非常棒的,但是速度可能很慢。它检查所有的.beam文件,如果以后修改了相应的.erl文件,这意味着必须重新编译它。每次请求都会重新编译。实际上,它并没有在前面的文件中创建新的.beam文件。它编译它们“动态”并加载,因此,即使在第一次修改后没有更改任何内容,文件仍然必须重新编译。

如果您对更多的文件做了一些修改,这个操作可能会对您的系统产生很大的影响。这可能和memcache或牛仔无关。定期编译文件就行了。

几个窍门:

  • ./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,不要使用热代码重新加载。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26398221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档