2010-01-10 2 views
1

Есть много статических и динамических инструментов для инструментов. Саут является статическим инструментом инструментария для байт-кода Java. Pin и Valgrind - это инструменты динамического инструментария для двоичных файлов.Плюсы/минусы статического и динамического инструментов

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

Плюс, в чем разница с использованием инструментов для инструментов от написания прохода LLVM?

ответ

2

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

Я скептически отношусь к статическим анализаторам, потому что все зависит от входных данных.

Dynamic Instrument пытается измерить свойства функций, такие как: время автономной работы и общее время, абсолютное, среднее и процентное значение. Также подсчитывают количество вызовов и роль каждой процедуры в графе вызовов.

Динамические приборы (a la gprof) были де-факто стандартными в течение десятилетий, но это далеко не последнее слово. Во-первых, важно понимать, что большинство статистических данных, которые оно дает вам, не имеют смысла с точки зрения вашей первоначальной потребности.

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

Несколько профилографов могут это сделать, в частности, Oprofile и RotateRight/Zoom.

+0

Этот ответ в основном говорит о * profilers *, который дает вам подробную информацию о том, где ваша программа проводит свое время. Профилирование - это только один случай использования * для настройки вашей программы. – Karmastan

+0

@ Karmastan: Спасибо. Обычно проблемы с производительностью и памятью являются основными проблемами. В ответе говорилось, что это связано с тем, что проблема является проблемой. Я вижу, где можно ответить на другие вопросы, связанные с правильностью. –

1

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

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

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

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

Смежные вопросы