Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails视图呈现奇怪的缓慢_Ruby On Rails_Performance_Libv8 - Fatal编程技术网

Ruby on rails Rails视图呈现奇怪的缓慢

Ruby on rails Rails视图呈现奇怪的缓慢,ruby-on-rails,performance,libv8,Ruby On Rails,Performance,Libv8,问题 突然之间,我的rails应用程序开始花费大约60秒的时间来处理初始请求和连续请求(如果资产发生了变化) 我试了什么 关于rails、render、slow,有很多答案,但都没有帮助,因为问题似乎在不同的领域 然后,我尝试将gem版本回滚到较旧的点,在这里不存在这个问题。不走运。我没有在systemrvm、homebrew中更新任何内容,因此没有可回滚的内容 然后我安装了ruby prof profiler,看到rails一直在执行V8::C::StringUtf8Value,但我无法从中获

问题

突然之间,我的rails应用程序开始花费大约60秒的时间来处理初始请求和连续请求(如果资产发生了变化)

我试了什么

关于rails、render、slow,有很多答案,但都没有帮助,因为问题似乎在不同的领域

然后,我尝试将gem版本回滚到较旧的点,在这里不存在这个问题。不走运。我没有在systemrvm、homebrew中更新任何内容,因此没有可回滚的内容

然后我安装了ruby prof profiler,看到rails一直在执行V8::C::StringUtf8Value,但我无法从中获得任何信息

诊断信息

我使用OSX小牛

服务器日志:

于2014-04-08 05:30:49+0200开始获取/获取127.0.0.1 当HTML用户加载0.3ms选择用户时,HomeControllerindex进行处理* 来自用户,其中users.id=1 ORDER BY users.id ASC LIMIT 1 布局/应用程序64211.8ms内呈现的home/index.html.erb 在64248ms视图中完成200 OK:64218.0ms |活动记录:2.1ms

探查器日志水平滚动:

 %total   %self      total       self       wait      child            calls    Name
--------------------------------------------------------------------------------
                     61.042      0.000      0.000     61.042              2/2      V8::Conversion::Fundamental#to_ruby
  87.50%   0.00%     61.042      0.000      0.000     61.042                2      V8::Conversion::NativeString#to_ruby
                     61.042     61.042      0.000      0.000              2/2      V8::C::String#Utf8Value
--------------------------------------------------------------------------------
                     61.042     61.042      0.000      0.000              2/2      V8::Conversion::NativeString#to_ruby
  87.50%  87.50%     61.042     61.042      0.000      0.000                2      V8::C::String#Utf8Value
--------------------------------------------------------------------------------
                      8.528      0.000      0.000      8.528              4/4      Proc#call
  12.22%   0.00%      8.528      0.000      0.000      8.528                4      V8::Error::Try#try
                      8.528      0.000      0.000      8.528              4/4      <Module::V8::C>#TryCatch
--------------------------------------------------------------------------------

好的,那么将config.assets.js_compressor=nil放在development.rb中显然可以解决这个问题。对于生产来说,这并不重要,因为它只会稍微增加部署持续时间。但是。。奇怪的或者这对于rails来说是正常的,而我刚刚达到了资产数量的临界值。可能是服务器性能下降。如果您希望提高服务器的速度,那么我会说更喜欢这个gem@Pavan,并非如此。这似乎是一个不太有前途的答案——ruby和v8之间的字符串复制速度很慢。这只是一个提示。无论如何,你的答案是正确的。