Как использовать что-то вроде *** prof, чтобы найти, какая функция стоит больше всего вычислительных сложностей? - PullRequest
0 голосов
/ 17 декабря 2009

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

Или есть какие-нибудь инструменты для этого использования? Я имею в виду найти самую «дорогую» функцию во всей программе или проекте ??

Какие-нибудь советы? Спасибо!

Ответы [ 3 ]

4 голосов
/ 17 декабря 2009

Профилировщик gprof поставляется с набором компиляторов GCC . Theres руководство для него здесь .

3 голосов
/ 17 декабря 2009

Эти инструменты называются «профилировщиками». Посмотреть предыдущий вопрос .

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

2 голосов
/ 17 декабря 2009

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

Профилировщики позволяют вам анализировать, как программа ведет себя при запуске (по сравнению с используемым тогда вводом). Это должно быть достаточно для любых реальных сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...