本文实例讲述了php实现的Timer页面运行时间监测类及其用法,是一款非常实用的PHP类文件。分享给大家供大家参考。具体分析如下:
该php Timer页面运行时间监测类,可按不同key监测不同的运行时间。
Timer.class.php类文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
<?php /** Timer class, 计算页面运行时间,可按不同key计算不同的运行时间 * Date: 2014-02-28 * Author: fdipzone * Ver: 1.0 * * Func: * public start 记录开始时间 * public end 记录结束时间 * public getTime 计算运行时间 * pulbic printTime 输出运行时间 * private getKey 获取key * private getMicrotime 获取microtime */ class Timer{ // class start private $_start = array (); private $_end = array (); private $_default_key = 'Timer' ; private $_prefix = 'Timer_' ; /** 记录开始时间 * @param String $key 标记 */ public function start( $key = '' ){ $flag = $this ->getKey( $key ); $this ->_start[ $flag ] = $this ->getMicrotime(); } /** 记录结束时间 * @param String $key 标记 */ public function end ( $key = '' ){ $flag = $this ->getKey( $key ); $this ->_end[ $flag ] = $this ->getMicrotime(); } /** 计算运行时间 * @param String $key 标记 * @return float */ public function getTime( $key = '' ){ $flag = $this ->getKey( $key ); if (isset( $this ->_end[ $flag ]) && isset( $this ->_start[ $flag ])){ return (float)( $this ->_end[ $flag ] - $this ->_start[ $flag ]); } else { return 0; } } /** 输出页面运行时间 * @param String $key 标记 * @return String */ public function printTime( $key = '' ){ printf( "%srun time %f ms\r\n" , $key == '' ? $key : $key . ' ' , $this ->getTime( $key )*1000); } /** 获取key * @param String $key 标记 * @return String */ private function getKey( $key = '' ){ if ( $key == '' ){ return $this ->_default_key; } else { return $this ->_prefix. $key ; } } /** 获取microtime */ private function getMicrotime(){ list( $usec , $sec ) = explode ( ' ' , microtime()); return (float) $usec + (float) $sec ; } } // class end ?> |
demo示例代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php require 'Timer.class.php' ; $timer = new Timer(); $timer ->start(); $timer ->start( 'program1' ); usleep(mt_rand(100000,500000)); $timer -> end ( 'program1' ); $timer ->printTime( 'program1' ); $timer ->start( 'program2' ); usleep(mt_rand(100000,500000)); $timer -> end ( 'program2' ); $timer ->printTime( 'program2' ); $timer -> end (); $timer ->printTime(); ?> |
demo运行输出:
1
2
3
|
program1 run time 163.285971 ms program2 run time 100.347042 ms run time 264.035940 ms |
完整实例源码点击此处本站下载。
希望本文所述对大家的PHP程序设计有所帮助。