Рубиниус анализ памяти приложения рельсов
У Рубиниуса есть инструмент для анализа памяти, который запускается так:
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