Любые ссылки на динамический анализ кода?

Вчера я читал о методах отладки и нашел Valgrind действительно интересным. Кажется, использовать методы из динамического анализа кода. И я перешел по ссылке из оригинальной ссылки на что-то еще под названиемПрофилирование пути.

Я пробовал поискать в Google, но, думаю, я использую неправильные термины, чтобы найти хорошую ссылку на эти концепции. Может кто-нибудь предложить хороший ресурс, учитывая, что у меня нет опыта работы с компиляторами и языками программирования?

Ответы на вопрос(1)

Решение Вопроса

Профилирование пути интересно как теоретическая проблема.gprof также интересно, потому что он имеет дело с графами вызовов, циклическими подграфами и тому подобным. Есть хорошие алгоритмы для манипулирования этой информацией и распространения измерений по всей структуре.

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

Однако предположим, что ваша программа зависает. Как вы находите проблему?

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

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

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

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

На эту тему можно сказать гораздо больше.

На самом деле, FWIW, я «опубликовал» статью об этом, но она была рецензирована только редактором, и я не думаю, что кто-то на самом деле ее читал: Dunlavey, «Настройка производительности с затратами на уровне команд, полученными из выборки из стека вызовов» , ACM SIGPLAN Уведомления 42, 8 (август 2007 г.), стр. 4-8.

 R..20 сент. 2010 г., 02:36
+1 за простые решения академики ненавидят. :-) На самом деле, одним из самых больших преимуществ вашего подхода является то, что он не страдает от изменений в производительности из-за наблюдения.
 Mike Dunlavey20 сент. 2010 г., 14:36
@R ..: Я был академиком, и мне нравилось преподавать, но я мог видеть, что академия - это эхо-камера, в значительной степени изолированная от реального вклада, который может направить их мышление в более полезные направления.
 Legend21 сент. 2010 г., 06:42
+1 за ваше время и объяснения. Очень мило на самом деле. В настоящее время я путешествую, поэтому не имею доступа к ACM. Прочитайте газету, когда я вернусь к работе. Мне действительно нравится смелое заявление, которое вы сделали: «слишком просто опубликовать» :)

Ваш ответ на вопрос