Есть ли случаи использования профилировщика, не следует использовать? - PullRequest
1 голос
/ 14 февраля 2012

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

Ответы [ 4 ]

5 голосов
/ 14 февраля 2012

«Мы должны забыть о малой эффективности, скажем, в 97% случаев: преждевременная оптимизация - корень всего зла»

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

2 голосов
/ 14 февраля 2012

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

0 голосов
/ 14 февраля 2012

Профиль периодически, по мере необходимости.

Не беспокойтесь о производительности профилировщика.

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

На самом деле ...

Я не использую профилировщики. Я вместо этого , потому что он работает лучше.

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

После того, как вы исправите проблемы, о которых они вам сообщают, вас ограничат те, о которых они вам не рассказывают. Здесь есть слайд-шоу в формате PDF здесь , показывающее, как это работает.

0 голосов
/ 14 февраля 2012

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

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

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

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