【发布时间】:2013-08-04 21:03:05
【问题描述】:
我需要执行一系列测试,以便为我设计的一组函数选择最快的代码分支。由于此函数输出一些文本/HTML 内容,我想测量速度而不用垃圾数据填充浏览器。
在 PHP 中是否有与 /dev/null 等价的东西?我发现与写入临时数据最接近的等价物是php://temp 和php://memory,但这两个 I/O 流存储垃圾数据,我希望每条数据都以“假”方式写入。
我总是可以将所有垃圾数据写入变量 ala $tmp .= <function return value goes here>,但我确信必须有更优雅或更好的方法来完成此操作无需诉诸 shell_exec() 之类的函数, exec(), proc_open() 和类似的方法(我要测试最终代码的生产服务器不会有任何这些命令)。
有没有等价物?
【问题讨论】:
-
使用
ob_start()ob_end_clean()包围代码的输出缓冲 -
如果你不想输出,就不要输出任何东西!
-
如果您似乎想要一个文件资源用于输出,为什么使用
/dev/null不可行。你的代码是怎么输出的? -
@Dagon 这不是重点。我需要测试输出速度(以及其他因素),所以我必须输出函数返回值。只是......我想在不(理想情况下)填充任何缓冲区的情况下做到这一点(我的测试循环通常迭代 10K 标记并平均在 1M 标记上运行,所以填充那么多数据不是一个选项......不是一个理智一个,至少):P
-
然后回到不需要输出,你在这里循环