[測試分析] for與foreach 執行效率測試結果 (轉)
在很多情況下for和foreach具有同樣的功能,選擇for還是foreach很多人可能都是看自己的喜好,本測試試圖透過來真是測試資料來比較他們的。希望能給大家對他們的時候帶來一些幫助。
測試環境:
環境: PIII800 + 456
環境: VisualStudio +
測試用例:
利用結果集來存放記錄,初始化對結果集新增記錄
分別對記錄數為10000,100000,1000000條記錄的時候進行取樣分析
關鍵測試對比程式碼如下,功能完全一樣:
//foreach開始時間
datetime3 = System.DateTime.Now.TimeOfDay.ToString();
foreach(DataRow row in relationData.Tables[RelationData.RELATIONINFO_TABLE].Rows)
buffer = row[RelationData.PK_TABLE_NAME].ToString();
datetime4 = System.DateTime.Now.TimeOfDay.ToString();
//for開始時間
datetime5 = System.DateTime.Now.TimeOfDay.ToString();
for(int j=0;j<1000000;j++)
buffer = relationData.Tables[RelationData.RELATIONINFO_TABLE].Rows[j][RelationData.PK_TABLE_NAME].ToString();
datetime6 = System.DateTime.Now.TimeOfDay.ToString();
測試結果:
10000條記錄時:
foreach讀取時間:16:29:34.2577584
foreach結束時間:16:29:34.2677728
for讀取開始時間:16:29:34.2677728
for讀取結束時間:16:29:34.2878016
100000條記錄時:
foreach讀取時間:16:31:10.1055808
foreach結束時間:16:31:10.1957104
for讀取開始時間:16:31:10.1957104
for讀取結束時間:16:31:10.4460704
1000000條記錄時:
foreach讀取時間:16:33:12.6217504
foreach結束時間:16:33:13.6332048
for讀取開始時間:16:33:13.6332048
for讀取結束時間:16:33:18.7906208
結果分析:
1)對於10000條記錄可以看出
foreach用了 0.0100144
for迴圈用了0.0300432
foreach所花的時間正好是for迴圈的 1/3
2)對於100000條記錄可以看出
foreach用了0.0901296
for迴圈用了0.2503600
foreach所花的時間是for迴圈的 36%
3)對於1000000條記錄結果可以看出
foreach用了1.0114544
for迴圈用了4.1574160
foreach所花的時間是for迴圈的 25%
透過對這些測試結果的分析,可以看出相對於原來的for語句foreach具有
更好的執行效率,foreach的平均花費時間只有for30%。透過測試結果在for和foreach都可以使用的情況下,我們推薦使用效率更高的foreach.在測試同時
我們附加的發現,用for寫入資料時間大約是讀取資料時間的10倍左右.:P
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-960730/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LoadRunner測試結果分析(1)
- postman的批次執行:用於多條介面測試用例批次執行,輸出介面測試測試結果Postman
- 測試結果
- 程式池、執行緒池效率測試執行緒
- grequests 執行併發測試與 jmeter 併發結果對比JMeter
- 手工測試與APPSCAN自動化測試結合的提高效率測試策略APP
- python進階(15)多執行緒與多程式效率測試Python執行緒
- APP測試點分析與總結APP
- 效能測試之測試分析與調優
- H5測試||測試執行階段測啥H5
- 測試merge效率
- 測試開發之單元測試-禪道結合ZTF驅動單元測試執行
- run_stats---sql效率測試工具(轉)SQL
- Jmeter Arrivals thread group 在命令列執行時,無法生成測試結果JMeterthread命令列
- 測試人員如何提高API功能測試效率?API
- 軟體產品測試之效能效率測試
- sqlprofile繫結執行計劃實驗測試SQL
- 轉:測試工程師的面試總結工程師面試
- Angular單元測試如何只執行指定的測試用例,提高測試速度Angular
- 內網系統自動化測試的,內網的機器執行的測試結果,可以通過什麼方式通知到測試人員內網
- 【測試】HD-G2L-IO評估板測試結果表
- teprunner測試平臺測試計劃批量執行用例
- 提升軟體測試效率與靈活性:探索Mock測試的重要性Mock
- 測試行業現狀分析行業
- mysql ,tidb sysbench 測試結果記錄MySqlTiDB
- 壓測結果分析
- 測試測試測試測試測試測試
- 網站漏洞滲透測試覆盤檢查結果分析網站
- 基於web網站專案的效能測試結果分析Web網站
- 滲透測試 網站安全測試行業問題分析網站行業
- httprunner(9)執行測試用例的方式總結HTTP
- 單元測試效率優化:為什麼要對程式進行測試?測試有什麼好處?優化
- 測試要點總結(轉帖)
- unittest 單元測試框架教程 1-執行測試指令碼框架指令碼
- Linux命令執行時間測試Linux
- SpringBoot Cli 安裝執行測試Spring Boot
- Jest如何有序地執行測試
- httprunner(11)執行測試報告HTTP測試報告
- 黑盒測試、白盒測試與灰盒測試方法