Ruby on rails 3.1 如何优化Rails 3.1中的资产编译rake任务,同时部署消耗所有内存的资源?

Ruby on rails 3.1 如何优化Rails 3.1中的资产编译rake任务,同时部署消耗所有内存的资源?,ruby-on-rails-3.1,asset-pipeline,sprockets,Ruby On Rails 3.1,Asset Pipeline,Sprockets,生产箱是Linode的768MB节点。在部署Rails 3.1应用程序时,会进行资产编译,在加载Rails应用程序env的情况下调用其他2个rake任务 因此,一个任务占用了30%的内存,这使得3个任务占用了90%的内存,capistrano命令随着zlib(finalizer)终止:流被过早释放。error 这让我很沮丧,因为它已经吃了我一整天了 这是可以通过预编译解决的问题吗?i、 e.bundle exec assets:precompile,这样您所做的就是将生成的文件推送到目标服务器,

生产箱是Linode的768MB节点。在部署Rails 3.1应用程序时,会进行资产编译,在加载Rails应用程序env的情况下调用其他2个rake任务

因此,一个任务占用了30%的内存,这使得3个任务占用了90%的内存,capistrano命令随着
zlib(finalizer)终止:流被过早释放。
error


这让我很沮丧,因为它已经吃了我一整天了

这是可以通过预编译解决的问题吗?i、 e.
bundle exec assets:precompile
,这样您所做的就是将生成的文件推送到目标服务器,而不是在那里编译它们?这可能会完成,但每次部署时进行编译都会使git历史与编译的这些资产混淆。现在,我想将RAM从768MB增加到1GB。但这是一个可怕的解决方案。有更好的优化方法吗?可能,但我个人不知道。我在每个部署上都进行了预编译(我使用的是Heroku),我对此没有意见。我也会在每次提交时进行预编译,所以我没有只进行预编译的提交。我发现我实际上并不经常查看git历史记录,但当我查看了git历史记录后,忽略它们并不是一个很大的问题。我能想到的唯一其他方法是将预编译保留在单独的提交分支(不是主分支,可能是一个名为“deploy”的分支)上,并始终从“deploy”分支进行部署,保持主分支相对干净。在我看来,这有点像吹毛求疵,但RAM相对便宜,所以真正让流程流程最适合你(并让你快乐)的东西可能是一个很好的做法。