经常在运行php程序的时候,想知道某个程序到底运行了多久。这样可以查找一些程序运行的效率问题。
一)最近写了一个程序运行的时间计算类,供大家参考:
- class Timer {
- private $StartTime = 0;//程序运行开始时间
- private $StopTime = 0;//程序运行结束时间
- private $TimeSpent = 0;//程序运行花费时间
- function start(){//程序运行开始
- $this->StartTime = microtime();
- }
- function stop(){//程序运行结束
- $this->StopTime = microtime();
- }
- function spent(){//程序运行花费的时间
- if ($this->TimeSpent) {
- return $this->TimeSpent;
- } else {
- list($StartMicro, $StartSecond) = explode(" ", $this->StartTime);
- list($StopMicro, $StopSecond) = explode(" ", $this->StopTime);
- $start = doubleval($StartMicro) + $StartSecond;
- $stop = doubleval($StopMicro) + $StopSecond;
- $this->TimeSpent = $stop - $start;
- return substr($this->TimeSpent,0,8)."秒";//返回获取到的程序运行时间差
- }
- }
- }
调用:
- $timer = new Timer();
- $timer->start();
- //...程序运行的代码
- $timer->stop();
- echo "程序运行时间为:".$timer->spent();
二)不用配置Host得到该测试机的访问速度:
如:我想测试一下那个Host为:C:\Windows\System32\drivers\etc\hosts
72.46.130.186 justwinit.cn 的访问速度,用PHP可以用如下代码:
- <?php
- $timer = new Timer();
- $timer->start();
- $data = "a=a";
- $returnStr = curl_post($data);
- echo $returnStr;
- $timer->stop();
- echo "程序运行时间为:".$timer->spent();
- ?>
- <?php
- function curl_post($data,$host = "http://72.46.130.186")
- {
- $ch = curl_init();
- $res= curl_setopt ($ch, CURLOPT_URL,$host);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt ($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch,CURLOPT_HTTPHEADER,array("Host: justwinit.cn"));
- $xyz = curl_exec ($ch);
- if ($xyz == NULL)
- {
- return 0;
- }
- return $xyz;
- }
- ?>
- <?php
- class Timer {
- private $StartTime = 0;//程序运行开始时间
- private $StopTime = 0;//程序运行结束时间
- private $TimeSpent = 0;//程序运行花费时间
- function start(){//程序运行开始
- $this->StartTime = microtime();
- }
- function stop(){//程序运行结束
- $this->StopTime = microtime();
- }
- function spent(){//程序运行花费的时间
- if ($this->TimeSpent) {
- return $this->TimeSpent;
- } else {
- list($StartMicro, $StartSecond) = explode(" ", $this->StartTime);
- list($StopMicro, $StopSecond) = explode(" ", $this->StopTime);
- $start = doubleval($StartMicro) + $StartSecond;
- $stop = doubleval($StopMicro) + $StopSecond;
- $this->TimeSpent = $stop - $start;
- return substr($this->TimeSpent,0,8)."秒";//返回获取到的程序运行时间差
- }
- }
- }
- ?>