<?php
class PageLoadMonitor {
private $startTime;
private $endTime;
private $logFile;
public function __construct($logFile = 'page_load_times.log') {
$this->logFile = $logFile;
$this->startTimer();
}
// 开始计时
private function startTimer() {
$this->startTime = microtime(true);
}
// 结束计时并记录加载时间
public function endTimerAndLog($pageName) {
$this->endTime = microtime(true);
$loadTime = $this->endTime - $this->startTime;
$logEntry = [
'timestamp' => date('Y-m-d H:i:s'),
'page_name' => $pageName,
'load_time' => round($loadTime, 4) // 保留4位小数
];
// 将日志条目写入文件
file_put_contents($this->logFile, json_encode($logEntry) . PHP_EOL, FILE_APPEND);
}
// 获取日志文件中的所有加载时间记录
public function getLogs() {
if (file_exists($this->logFile)) {
$logs = file($this->logFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
return array_map('json_decode', $logs);
}
return [];
}
}
// 示例使用
$monitor = new PageLoadMonitor();
// 假设这是某个页面的处理过程
sleep(1); // 模拟页面加载或处理过程
// 结束计时并记录加载时间
$monitor->endTimerAndLog('example_page.php');
// 输出所有加载时间日志
$logs = $monitor->getLogs();
foreach ($logs as $log) {
echo "Time: {$log->timestamp}, Page: {$log->page_name}, Load Time: {$log->load_time}s\n";
}
这个PHP代码片段实现了一个页面加载时间监测工具,适用于监测和记录网页或脚本的执行时间。该工具可以帮助开发者识别页面加载性能瓶颈,并做出优化。具体功能如下:
- 页面加载时间监测:通过
startTimer
和endTimerAndLog
方法,测量从页面开始执行到结束的时间,记录页面加载的时长。 - 日志记录:每次测量后,加载时间会被记录到指定的日志文件中(默认为
page_load_times.log
),包括时间戳、页面名称和加载时间。 - 日志读取:通过
getLogs
方法,可以读取和显示所有已记录的加载时间日志,便于分析和优化页面性能。
这种工具特别适合需要监控多个页面或脚本性能的场景,有助于开发者在性能优化过程中获得量化的数据支持。