0

Rubinius 有一个内存分析工具,它是这样启动的:

rbx -Xagent.start <script name>

se http://rubini.us/doc/en/tools/memory-analysis/

但是如何启动一个 Ruby on Rails 应用程序来进行内存分析呢?

rbx -Xagent.start rails server

不成功!

为了在 Rails 应用程序中搜索泄漏,您会为“脚本名称”添加什么?

gem 'ruby-prof' 仅适用于 MRI ruby​​ RUBY_VERSION.between?('1.9.2', '2.0') !所以我认为这就是 rubinius 拥有自己的 tools/memory-analysis/ 的原因。我只是不明白它是如何在 Rails 中使用的。

4

1 回答 1

1

1 号航站楼的起跑线:

rbx -Xagent.start bin/rails s puma

终端 2 中的访问控制台:

rbx console
VM: rbx -Xagent.start bin/rails s puma
Connecting to VM on port 42051
Connected to localhost:42051, host type: i686-pc-linux-gnu
console> set system.memory.dump heap.dump1

解释转储

rbx -I <gem dir>/heap_dump/lib -S histo.rb heap.dump1 > dump1

堆转储解释工具

读取 Rubinius HeapDump 格式的代码

获取具有 gemspec 的 fork

cd ~/rails/r
git clone https://github.com/kungfumike/heap_dump.git heap_dump
cd heap_dump
gem build heap_dump.gemspec
gem install heap_dump
于 2014-05-10T01:03:47.187 回答