我目前正試圖找到解決我目前的問題。php大對象/數組循環性能
給下面的代碼:
$array = array();
for($a=0;$a!=100000;$a++) {
$std = new \stdClass();
$array[] = $std;
$count = count($array);
for($i=0;$i!=$count;$i++);
}
大約需要3.0082960128784秒:
$array = array();
for($a=0;$a!=1000;$a++) {
$std = new \stdClass();
$array[] = $std;
$count = count($array);
for($i=0;$i!=$count;$i++);
}
PHP將圍繞0.052025079727173秒
給予運行該腳本。
考慮:
$array = array();
for($a=0;$a!=100000;$a++) {
$std = new \stdClass();
$array[] = $std;
$count = count($array);
//for($i=0;$i!=$count;$i++);
}
運行在0.3171501159668。
現在我明白我正在高速循環,而且我還沒有進入這個領域。
所以我的問題是這只是錯誤的,它應該以不同的方式處理,PHP不處理非常好的大數據集處理或循環大量的數據,而不是任何語言的明智的想法。
你想完成什麼?有什麼問題?我所看到的是,當你循環更多次時,需要更長的時間。這應該很明顯,但是問題是什麼? – Wiseguy 2011-06-16 16:23:00
不是一個真正的答案,但你想要做什麼?在你的例子中,你不是遍歷數據,只是增加一個整數並且用另一個值檢查它的值,值得指出你的目標是什麼,這樣我們可以給你一個更好的方法來實現它(如果有的話)。在你的「緩慢」的例子中,你循環了100000 * 100000次,併爲每次迭代進行比較和遞增。 – Lepidosteus 2011-06-16 16:23:47
您可能會用完內存。 – 2011-06-16 16:23:59