Производительность памяти профиля для части проекта рельсов - PullRequest
0 голосов
/ 29 марта 2010

Я хочу проверить использование профиля важного библиотечного класса моего rails-проекта. Он использует ActiveRecord, поэтому мне нужны все зависимости rails для его профилирования.

Насколько я знаю, мне нужен патчированный ruby ​​(rubygc), чтобы скрипт / профиль и скрипт / бенчмарк могли отслеживать использование памяти. Я пытался следовать этому официальному руководству для исправления исходного кода ruby ​​1.8.6 (p399) и 1.8.7 (p248), но оба не удаются со следующим сообщением:

patching file gc.c
Hunk #2 succeeded at 50 with fuzz 2 (offset 2 lines).
Hunk #3 succeeded at 87 with fuzz 2 (offset 6 lines).
Hunk #4 succeeded at 153 with fuzz 1 (offset 45 lines).
Hunk #5 succeeded at 409 with fuzz 2 (offset 274 lines).
Hunk #6 FAILED at 462.
Hunk #7 FAILED at 506.
Hunk #8 FAILED at 520.
Hunk #9 FAILED at 745.
Hunk #10 FAILED at 754.
Hunk #11 FAILED at 923.
Hunk #12 succeeded at 711 (offset 46 lines).
Hunk #13 succeeded at 730 (offset 46 lines).
Hunk #14 succeeded at 766 (offset 55 lines).
Hunk #15 succeeded at 1428 (offset 87 lines).
Hunk #16 succeeded at 1492 (offset 89 lines).
Hunk #17 FAILED at 1541.
Hunk #18 FAILED at 1551.
Hunk #19 succeeded at 1571 (offset 91 lines).
Hunk #20 succeeded at 1592 (offset 91 lines).
Hunk #21 succeeded at 1601 (offset 91 lines).
Hunk #22 succeeded at 1826 (offset 108 lines).
Hunk #23 succeeded at 1843 (offset 108 lines).
Hunk #24 succeeded at 1926 (offset 108 lines).
Hunk #25 succeeded at 2118 (offset 108 lines).
Hunk #26 succeeded at 2563 (offset 100 lines).
Hunk #27 succeeded at 2611 with fuzz 1 (offset 102 lines).
Hunk #28 succeeded at 2628 (offset 102 lines).
8 out of 28 hunks FAILED -- saving rejects to file gc.c.rej
patching file intern.h
Hunk #1 succeeded at 268 (offset 15 lines).

Я также пытался использовать ruby-prof, но всегда получаю ошибку "неинициализированная константа RubyProf :: Test". Я не знаю, как использовать гем "memory", и ни "memprof", ни "bleak_house" не могли быть успешно установлены.

Если я получу исправленный рубин, у меня все будет хорошо. Но любая другая возможность профилировать память библиотечных классов приветствуется. Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 24 апреля 2010

Я тоже всегда получал эту ошибку с ruby-prof. В файле profile_test_helper.rb есть ошибка. Если вы измените строку 17 на «требовать 'ruby-prof / test'", это должно сработать.

http://github.com/jeremy/ruby-prof/issues#issue/5

0 голосов
/ 15 апреля 2010

Если вы используете Windows, вы можете попробовать Ruby Memory Validator .

Вы также можете попробовать оригинальный API отслеживания памяти Ruby , из которого получены некоторые другие. Это работает для любой платформы, но вам придется самостоятельно собирать Ruby (и вызывать API из C / C ++ самостоятельно).

...