PHP, эквивалентный журналу медленного запроса MySQL?

Предлагаемый способ совместим с Xcode 8.3 и Xcode 9 , который поддерживает Swift 3 и Swift 4

let colorSpace = CGColorSpaceCreateDeviceRGB()
guard let bitmapContext = CGContext(data: nil, 
                                    width: Int(size.width),
                                    height: Int(size.height),
                                    bitsPerComponent: Int(bitsPerComponent),
                                    bytesPerRow: Int(bytesPerRow),
                                    space: colorSpace,
                                    bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue) else {
                                  return nil
    }
8
задан James Simpson 4 June 2009 в 07:17
поделиться

4 ответа

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

Если вы хотите измерить скорость в продуктивной среде, я бы просто измерял вручную. microtime () - это функция для этих вещей в PHP. Предположим, у вас есть header.php и footer.php, которые вызываются всеми сценариями php:

# In your header.php (or tpl)
$GLOBALS['_execution_start'] = microtime(true);

# In your footer.php (or tpl)
file_put_contents(
    '/tmp/my_profiling_results.txt',
    microtime(true) - $GLOBALS['_execution_start'] . ':' . print_r($_SERVER, true) . "\n",
    FILE_APPEND
);
10
ответ дан 5 December 2019 в 08:00
поделиться

Вы можете заключить свои сценарии в простой таймер, например:

/*in your header or at the top of the page*/
$time_start = microtime(true); 

/* your script goes here */

/*in your footer, or at the bottom of the page*/
$time_end = microtime(true);
$time = $time_end - $time_start;   
echo "It took $time seconds\n";

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

4
ответ дан 5 December 2019 в 08:00
поделиться

Не могли бы вы зарегистрировать функцию выключения, которая вызывает окончание таймера? http://us3.php.net/register_shutdown_function Таким образом, вам нужно будет запускать таймер только там, где, по вашему мнению, может быть проблема.

1
ответ дан 5 December 2019 в 08:00
поделиться

как насчет auto_prepend_file и auto_append_file, только что написал об этом сообщение http://blog.xrado.si/post/php-slow-log

5
ответ дан 5 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: