Как определить размер токового выхода - PullRequest
1 голос
/ 26 марта 2012

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

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

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

Есть ли функция, которую я мог бы использовать в PHP, которая в любой момент говорит мне, сколько выходных данных было сгенерировано моим сценарием до сих пор?

Спасибо!

1 Ответ

1 голос
/ 26 марта 2012

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

Вы действительно пытались обернуть больше буферизации вывода вокруг своего скрипта и нашли разницу в производительности недопустимой?

...