我需要执行一系列测试,为我设计的一组函数选择最快的代码分支。由于此函数输出一些文本/ HTML内容,我想测量速度而不用浏览器填充垃圾数据。
PHP中是否有等效的/ dev / null?与我发现的临时数据最接近的等价物是php://temp
和php://memory
,但这两个I / O流存储垃圾数据,我希望每个数据都以'假'形式写入方式。
我总是可以在变量ala $tmp .= <function return value goes here>
中编写所有垃圾数据,但我确信必须有一个更优雅或更好的方法来实现这个 WITHOUT 诉诸{{ {1}},shell_exec()
,exec()
和类似的方法(我将测试最终代码的生产服务器不会有任何这些命令)。
是否有等价的?
答案 0 :(得分:0)
我认为你最好的选择是streamWrapper,用microtime描述你的输出,你可以stream_wrapper_register。手册中的example非常好。
如果您的代码不是那么复杂,或者您失败了,那就太过分了,您可以使用ob_start回调处理程序
希望这有帮助。
答案 1 :(得分:0)
//对于它的价值,这适用于CentOS 6.5 php 5.3.3。
$fname = "/dev/null";
if(file_exists($fname)) print "*** /dev/null exists ***\n";
if (is_readable($fname)) print "*** /dev/null readable ***\n";
if (is_writable($fname)) print "*** /dev/null writable ***\n";
if (($fileDesc = fopen($fname, "r"))==TRUE){
print "*** I opened /dev/null for reading ***\n";
$x = fgetc($fileDesc);
fclose($fileDesc);
}
if (($fileDesc = fopen($fname, "w"))==TRUE)
{
print "*** I opened /dev/null for writing ***\n";
$x = fwrite($fileDesc,'X');
fclose($fileDesc);
}
if (($fileDesc = fopen($fname, "w+"))==TRUE) {
print "*** I opened /dev/null for append ***\n";
$x = fwrite($fileDesc,'X');
fclose($fileDesc);
}