ruby-on-rails – 减少耙资产的内存消耗:预编译
问题:
在执行rake资产时,我的RAM已经用尽:自动构建中的预编译任务.是否有任何策略来进行增量预编译,或者以某种其他方式执行预编译阶段,而不占用多少RAM?似乎该任务比构建的基准消耗大约850 MB. 语境: 解决方法
简短答案
使用NodeJS作为预编译的JavaScript解释器(或另一种以低峰值RAM使用为特征的JavaScript解释器). 更长的答案 对于上下文,我使用NodeJS 4.5.0与therubyracer v0.12.2和therubyrhino v2.0.4相比较 你可以增加RAM吗? 听起来很愚蠢,但在构建过程复杂化之前,看看是否有更多能力的构建机器可用,或者是否有可用的交换空间可能是有意义的(尽管它可能会增加构建时间). 你可以切换JavaScript解释器吗? 高峰RAM利用率似乎是therubyrhino(Mozilla的Rhino JavaScript解释器)和therubyracer(V8 JavaScript解释器)的基本特征.在资产预编译阶段,显着降低RAM占用量的方法似乎不是一种有效的方式.最可行的路径似乎是预编译构建生命周期之外的资产,并将它们缓存到某个地方,以便可以获取它们,而不是预编译,as suggested by @user4776684.作为对该问题的意见建议,Rails版本和Ruby版本都有影响,但不会就像JavaScript解释器一样. 如果一切都失败 作为@slowjack2k mentioned above,如果使用Bundler,则可以利用并行配置来仅为预编译任务调用NodeJS,并保持原始版本相对不变.我没有看到这一点,因为它更容易切换口译员,但是当我能够用rake和NodeJS预编译资源时,他们似乎没有被认为是预编译的,当它来到耙子的时候,他们是re -precompiled.我使用程序设置的BUNDLE_GEMFILE环境变量完成了这一点,该变量指向一个完全独立的gemfile,它使用了Ruby Ruby和NodeJS而不是JRuby和therubyrhino. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |