Вопрос

я тестировал профилировщик производительности и памяти AQTime чтобы увидеть, стоит ли тратить эти большие деньги на мое приложение Delphi.

Что меня поражает, так это то, как он может обеспечить отслеживание производительности на уровне исходной строки (включая количество раз, когда каждая строка была выполнена, и количество времени, которое заняла эта строка) без изменения исходного кода приложения и без добавления чрезмерного количества времени к отладочный прогон.

То, как они это делают так эффективно, заставляет меня думать, что здесь могут быть использованы некоторые методы/технологии, о которых я не знаю, о которых было бы полезно знать.

Знаете ли вы, какие методы они используют для построчного захвата выполнения без изменений кода?

Существуют ли другие инструменты профилирования, которые также выполняют неинвазивную построчную проверку, и если да, используют ли они те же методы?

Это было полезно?

Другие советы

Я создал профилировщик с открытым исходным кодом для Delphi, который делает то же самое: http://code.google.com/p/asmprofiler/

Это не идеально, но это бесплатно :-). Также используется техника Detour. Он хранит каждый звонок (вы должны вручную установить, какие функции вы хотите профилировать), поэтому он может создать точное дерево истории вызовов, включая временную диаграмму (!).

Я не знаю конкретно о Delphi, но отладчик приложений C может относительно легко выполнять построчное профилирование - он может загружать код и связывать каждый путь кода с блоком кода.Затем он может прерваться на всех инструкциях условного перехода и просто посмотреть, какой путь кода будет выбран.Отладчики, подобные gdb, могут работать относительно эффективно, поскольку они работают через ядро ​​и не изменяют код, а просто получают информацию о выполнении каждой строки.Если что-то вызывает досрочный выход из блока (longjmp), отладчик может перехватить это и выяснить, как далеко он зашел в блоки, когда это произошло, и увеличить только эти строки.

Конечно, кодировать это по-прежнему будет сложно, но когда я говорю «легко», я имею в виду, что вы можете сделать это, не тратя время на выполнение каждой инструкции для обновления счетчика.

У давно не существовавшей TurboPower также был отличный инструмент для профилирования / анализа для Delphi под названием Sleuth QA Suite. Я обнаружил, что это намного проще, чем AQTime, но гораздо проще получить значимый результат. Может быть стоит попытаться выследить - может, eBay?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top