本文實(shí)例講述了php實(shí)現(xiàn)的Timer頁面運(yùn)行時間監(jiān)測類及其用法,是一款非常實(shí)用的PHP類文件。分享給大家供大家參考。具體分析如下:
該php Timer頁面運(yùn)行時間監(jiān)測類,可按不同key監(jiān)測不同的運(yùn)行時間。
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, 計算頁面運(yùn)行時間,可按不同key計算不同的運(yùn)行時間 * Date: 2014-02-28 * Author: fdipzone * Ver: 1.0 * * Func: * public start 記錄開始時間 * public end 記錄結(jié)束時間 * public getTime 計算運(yùn)行時間 * pulbic printTime 輸出運(yùn)行時間 * 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 標(biāo)記 */ public function start( $key = '' ){ $flag = $this ->getKey( $key ); $this ->_start[ $flag ] = $this ->getMicrotime(); } /** 記錄結(jié)束時間 * @param String $key 標(biāo)記 */ public function end ( $key = '' ){ $flag = $this ->getKey( $key ); $this ->_end[ $flag ] = $this ->getMicrotime(); } /** 計算運(yùn)行時間 * @param String $key 標(biāo)記 * @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; } } /** 輸出頁面運(yùn)行時間 * @param String $key 標(biāo)記 * @return String */ public function printTime( $key = '' ){ printf( "%srun time %f ms\r\n" , $key == '' ? $key : $key . ' ' , $this ->getTime( $key )*1000); } /** 獲取key * @param String $key 標(biāo)記 * @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運(yùn)行輸出:
1
2
3
|
program1 run time 163.285971 ms program2 run time 100.347042 ms run time 264.035940 ms |
完整實(shí)例源碼點(diǎn)擊此處本站下載。
希望本文所述對大家的PHP程序設(shè)計有所幫助。