php benchmark 對象與數組




php benchmark (3)

我相信一個數值數組可能是最輕量級的,其次是關聯數組,然後是一個對象。 我不認為差異會加起來很多,所以你最舒服的語法是最好的。

我現在正在一個網站上工作,並且集中在裝載,處理等方面的效率和速度。

我使用mysqli擴展來獲得我的數據庫的位和鮑勃,但我想知道什麼是最好的/最有效的方式輸出我的數據集?

目前我正在使用$ mysqli-> fetch_assoc()和一個foreach()。 閱讀http://www.phpbench.com我知道,統計我的數據首先有所作為。 (我打算在構建之後進行優化)

我的問題是,獲取結果集到一個PHP數據的東西更快。 創建一個對象? 數組數組? 一個關聯數組? 我的想法是一個對象,但我不確定。

只是好奇,因為我不熟悉的PHP內幕:)


mysql_fetch_object的註釋下,PHP文檔實際上有一個小的基準:

SELECT * FROM bench... (mysql_fetch_object)

查詢時間:5.40725040436
提取時間:16.2730708122(平均:1.32130565643E-5)
總時間:21.6803212166

SELECT * FROM bench... (mysql_fetch_array)

查詢時間:5.37693023682
提取時間:10.3851644993(平均分:7.48886537552E-6)
總時間:15.7620947361

SELECT * FROM bench... (mysql_fetch_assoc)

查詢時間:5.345921278
提取時間:10.6170959473(平均:7.64049530029E-6)
總時間:15.9630172253

獲取對象最慢,取數值數組可能比使用mysql_fetch_arraymysql_fetch_assoc快一點,但差異可以忽略不計。 實際上, mysql_fetch_array獲取assoc和numeric兩個參數,並且比mysql_fetch_assoc快,但是如果在性能之後,就不要使用mysql_fetch_object


mysql_fetch_object()的手冊頁

注意:性能

速度方面,函數與mysql_fetch_array()相同,幾乎和mysql_fetch_row()一樣快(差別不大)

正如Tatu給出的基準所表明的那樣,略有不同,但請記住這些數字已經從連續100次查詢中累積起來。 我想說你現在不打擾並稍後優化的策略是一個不錯的選擇。





benchmarking