История изменений
Исправление pon4ik, (текущая версия) :
addr2line
О! Круто не знал, спасибо.
Так ты посмотришь зачем нужны coverage анализаторы или дальше будешь чушь пороть? Ну там почитаешь чего-нибудь про сложность затрагивания всех бранчей выполнения в тестовых условиях и всё такое.
Собственно для оптимизаций нужны только ветки работающие в интересующих юзекейсах, так что сгодятся даже приёмочные тесты, для понимания кто кого вызывает в нужных случаях. Другое дело, что любой инструментальный профайлер конечно же лучше справиться с такой задачей, про сэмплерные - уже можно спорить.
Но автоматических инструментальных профайлера(времени выполнения) для нативного кода я знаю всего два - gperf и callgrind и у обоих есть недостатки. Если расскажешь ещё про какой - с интересом послушаю.
Для начала нужно определить какие виды оптимизаций допустимы (можно ли делать move, разделяемые внутренние состояния и т.д.), а для этого нужно смотреть как класс/модуль/ф-я используется в коде. Потом уже на новый контракт можно делать UT.
Для начала - надо найти узкое мест[оа] же...
Upd: лол, всю жизнь думал, что gprof инструментальный, ан нет, он тоже сэмплерный. Нафига он тогда нужен на сегодняшний день я не совсем понимаю :(
Исходная версия pon4ik, :
addr2line
О! Круто не знал, спасибо.
Так ты посмотришь зачем нужны coverage анализаторы или дальше будешь чушь пороть? Ну там почитаешь чего-нибудь про сложность затрагивания всех бранчей выполнения в тестовых условиях и всё такое.
Собственно для оптимизаций нужны только ветки работающие в интересующих юзекейсах, так что сгодятся даже приёмочные тесты, для понимания кто кого вызывает в нужных случаях. Другое дело, что любой инструментальный профайлер конечно же лучше справиться с такой задачей, про сэмплерные - уже можно спорить.
Но автоматических инструментальных профайлера(времени выполнения) для нативного кода я знаю всего два - gperf и callgrind и у обоих есть недостатки. Если расскажешь ещё про какой - с интересом послушаю.
Для начала нужно определить какие виды оптимизаций допустимы (можно ли делать move, разделяемые внутренние состояния и т.д.), а для этого нужно смотреть как класс/модуль/ф-я используется в коде. Потом уже на новый контракт можно делать UT.
Для начала - надо найти узкое мест[оа] же...