php中的cpu_get_usage?

Ren*_*ene 6 php cpu benchmarking

我创建了一个基准类,允许用户插入例如

$timer->checkpoint('1');
Run Code Online (Sandbox Code Playgroud)

检查一些代码的时间,内存消耗等......如果她/他想测试它,她/他必须插入代码的末尾

$result=$timer->result();
Run Code Online (Sandbox Code Playgroud)

这给公共函数result()提供了一些数据,例如内存使用(使用memory_get_peak_usage)和时间消耗(microtime()).

这对我来说都很好.

但是,如何使用现有内置php函数的组合来获取可被视为CPU消耗的值

使用内置函数计算在某段代码上花费了多少时间非常容易,但我一直在想办法如何获得某段代码的CPU消耗.

Ren*_*ene 5

讨厌回答我自己的问题,但我做了很多研究,在这里我去...基本上我做的就是这个......

        $dat=getrusage();
        foreach ($dat as $key => $val) {
            $usertime= $dat['ru_utime.tv_usec'];
            $systemtime= $dat['ru_stime.tv_usec'];
            $finalresultcpu= ($systemtime + $usertime);
        }
        $this->_cpuTrackers[$name]=$finalresultcpu;
        return $this;
                                              }
Run Code Online (Sandbox Code Playgroud)

如你所见,我使用了getrusage php内置函数.这给出了一个包含大量信息的数组,除了ru_utime.tv_usec(用户时间)和ru_stime.tv_usec(系统时间)之外,其中大多数对我来说都是无用的.要查看脚本消耗了多少CPU功率,我们需要查看"用户时间"和"系统时间"值,正如您在代码中看到的那样,添加它以获得实际上是cpu使用的时间.

  • 谢谢你的例子。我会删除“foreach” - 您可以直接访问“$dat['ru_utime.tv_usec']”,而不需要“foreach”。 (2认同)