最近閒暇時在研發basicphp1.1的版本,對basicphp框架進行的非常細的優化,其中效能優化是很重要的一部分。
orm部分要把從資料庫查詢到的資料轉換為物件陣列,這個轉換效率怎麼樣呢?今天進行了一次較為詳細的測試。
首先,有兩種選擇,一是直接使用fetch_object(),將得到stdclass物件陣列,在以前已經測試過,要比先fetch_array()再轉換成model物件陣列的效率要低,具體低多少呢?之前對3w條資料的測試,慢80%!
所以basicphp採用了目前的先fetch_array()再轉換成model物件陣列的方法,今天的測試結果如下:
從資料庫中取出的資料量||轉換成model陣列所花時間||比直接取出陣列慢的時間百分比
100------0.0008s----0.16%
500------0.0031s----0.61%
1000-----0.0067s----1.29%
5000-----0.0183s----3.41%
10000----0.0376s----6.71%
20000----0.0763s----12.47%
30000----0.1111s----17.17%
當資料量超過3w的時候,記憶體不夠用了,沒辦法繼續測試了。
當資料量在1000條之內時,影響不到1%,說明該方法還是比較可取的。
把資料控制在1000條之內很容易,一般都會使用分頁查詢,每頁的數量就很少了,所以轉換為model的物件陣列的迴圈執行速度就很快了。而且1.1版本中對分頁查詢進行了優化,確保平時在資料查詢時的效率。
效能測試 效能測試步驟
針對此次庫內作業效能測試,梳理一下期間的工作流程 梳理已有的介面指令碼,確認需要做效能測試的幾個介面,即使用率高,對效能有要求的幾個主要介面。結合頁面的操作,和確認的介面,梳理具體的業務邏輯 同時,請開發人員部署了測試環境。測試環境的伺服器指標,盡量和生產環境一致。部署的時候,負載均衡等情況也盡量和...
效能測試之前端效能測試
本次總結總共分為以下部分 1.如何衡量乙個系統是否要做壓測 2.壓測的準備過程 3.壓測工具選擇 4.壓測資料以及報告結果相關 1.如何衡量乙個系統是否要做壓測 首先需要衡量乙個系統是否需要壓測,從以下角度考慮 從兩個角度進行分析 a.業務角度 明確系統是對內使用還是對外使用,使用人數是多少,如果使...
IT之路 效能測試系列 初識效能測試
上一章節我們大概了解了下loadrunner,這一章,我們來認識一下效能測試。說到效能測試,很多同學會有自己不同的感想。web前端的測試同學說 頁面怎麼半天打不開啊,沒辦法測啊,必須改善。一線運維的同學說 靠,系統上線這才多久啊,怎麼就嘎嘣的宕機了?這可以不行啊,客戶跳起來了,必須趕緊處理。終端使用...