如何抑制system()从打印到屏幕?

时间:2013-02-18 02:00:11

标签: php

尝试测试mongo检索每个文档的时间。

但是,system()会将结果打印到屏幕上,我认为这可能会减慢过程。

我怎么能将它从打印到屏幕压缩?

<?php
$m = new MongoClient();
$db = $m->selectDB("test");
$collection = new MongoCollection($db, "fakestat");
for($i=0;$i<1000;$i++){
        $index[]=rand(1,432050);
}
$fp = fopen('logTime.txt','w');
fwrite($fp, "startTimeSec\t startTimeNanoSec\t endTimeSec\t endTimeNanoSec\n");

foreach($index as $val) {
        $startTime = system("date +%s'\t'%N");
        $results[] = $collection->findOne(array("capture"=>"$val"));
        $endTime = system("date +%s'\t'%N");
        fwrite($fp, sprintf("%s\t %s\n", $startTime, $endTime));
}
fclose($fp);
$m->close();
?>

更新:使用exec(),似乎工作效果仍然相当缓慢。

1 个答案:

答案 0 :(得分:1)

两个选项:

  1. 使用shell_exec代替system

    $startTime = shell_exec("date +%s'\t'%N");
    
  2. 请改用microtime

      

    microtime - 以微秒为单位返回当前的Unix时间戳

    $startTime = microtime();