Вы хотите попытаться выяснить, где происходят самые большие задержки, и не знаете, как это сделать.
Первый инстинкт каждого - начать измерять время, используемое методами, и подсчитать, сколько раз они вызываются и постепенно суживаются, и используя интуицию, чтобы сделать разумное предположение о том, что можно исправить. Однако есть еще один способ подумать об этом, а не о времени, но с точки зрения необходимости.
Программа проходит дерево вызовов. Основная процедура вызывает A, затем вызывает B и т. Д. Вызов C, затем D и т. Д. Это идет по дереву вызовов, вплоть до листьев, которые являются простыми утверждениями, системными вызовами и ввода-выводами. Если все эти действия просто должно быть выполнено, программа будет как можно быстрее.
Поскольку существует задержка, некоторые из этих действий не являются абсолютно необходимыми, и для них нет необходимости в том, чтобы одна из ветвей, ведущих к ним (точки вызова), не была строго необходима.
Предположим, что ваша задержка стоит 50% времени. Затем эти точки вызова активны и в стеке вызовов в течение 50% времени. Поэтому, если вы случайно приостановите программу и отобразите стек, вероятность того, что вы увидите, составляет 50%. Если вы сделаете это 10 раз, он появится на 5 из них, более или менее.
Фактически, если вы делаете такой random pausing и проверяете стек, если точка вызова отображается только на одном образце, он ничего не сообщает. Но если он появляется на нескольких образцах, , и если это то, чего вы могли бы избежать, вы нашли задержку, и исправление сделает программу быстрее. Более того, почти нет задержки, которую вы можете исправить, что может избежать такого рода проверки.
Поскольку программа становится все более сложной, такие не строго необходимые точки вызова, как правило, ползут, как и ошибки. В отличие от ошибок, они не требуют, чтобы вы их исправили; они только замедляют работу программы, поэтому полезно делать это время от времени.
вам нужен профайлер, поэтому я рекомендую вам познакомиться с x-debug –
** Это не сработало ** не является допустимым описанием проблемы. Если вы не знаете, как работает XDebug, либо [просмотрите документацию] (http://www.xdebug.org/docs/), либо поместите свои проблемы в соответствующий вопрос. В любом случае, XDebug - ваш лучший выбор. – Gordon
Возможный дубликат [Good Free PHP debugger?] (Http://stackoverflow.com/questions/1494288/good-free-php-debugger/1494339#1494339) – Gordon