Рубиниус анализ памяти приложения рельсов

У Рубиниуса есть инструмент для анализа памяти, который запускается так:

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' предназначен только для МРТ ruby ​​RUBY_VERSION.between?('1.9.2', '2.0')! Поэтому я полагаю, что именно поэтому у Рубиниуса есть свои инструменты / анализ памяти /. Я просто не понимаю, как это используется в Rails.

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

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
Другие вопросы по тегам