LINUX.ORG.RU

История изменений

Исправление pon4ik, (текущая версия) :

addr2line

О! Круто не знал, спасибо.

Так ты посмотришь зачем нужны coverage анализаторы или дальше будешь чушь пороть? Ну там почитаешь чего-нибудь про сложность затрагивания всех бранчей выполнения в тестовых условиях и всё такое.

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

Но автоматических инструментальных профайлера(времени выполнения) для нативного кода я знаю всего два - gperf и callgrind и у обоих есть недостатки. Если расскажешь ещё про какой - с интересом послушаю.

Для начала нужно определить какие виды оптимизаций допустимы (можно ли делать move, разделяемые внутренние состояния и т.д.), а для этого нужно смотреть как класс/модуль/ф-я используется в коде. Потом уже на новый контракт можно делать UT.

Для начала - надо найти узкое мест[оа] же...

Upd: лол, всю жизнь думал, что gprof инструментальный, ан нет, он тоже сэмплерный. Нафига он тогда нужен на сегодняшний день я не совсем понимаю :(

Исходная версия pon4ik, :

addr2line

О! Круто не знал, спасибо.

Так ты посмотришь зачем нужны coverage анализаторы или дальше будешь чушь пороть? Ну там почитаешь чего-нибудь про сложность затрагивания всех бранчей выполнения в тестовых условиях и всё такое.

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

Но автоматических инструментальных профайлера(времени выполнения) для нативного кода я знаю всего два - gperf и callgrind и у обоих есть недостатки. Если расскажешь ещё про какой - с интересом послушаю.

Для начала нужно определить какие виды оптимизаций допустимы (можно ли делать move, разделяемые внутренние состояния и т.д.), а для этого нужно смотреть как класс/модуль/ф-я используется в коде. Потом уже на новый контракт можно делать UT.

Для начала - надо найти узкое мест[оа] же...