for与foreach 执行效率测试结果(转)
上一篇 / 下一篇 2007-04-16 14:01:40 / 个人分类:Testing
for与foreach 执行效率测试结果(转)51Testing软件测试网d'X)I&ER"v#L
51Testing软件测试网/C:q,gWR$W @2kru
在很多情况下for和foreach具有同样的功能,选择for还是foreach很多人可能都是看自己的喜好,本测试试图通过来真是测试数据来比较他们的执行效率。希望能给大家对他们的时候带来一些帮助。
.Gp-qSu/M2E6_Dl051Testing软件测试网[R,m3iU-aU;h测试环境:51Testing软件测试网}7d0GMN-d
硬件环境: PIII800 CPU45651Testing软件测试网6nVxi8}X0\
软件环境: VisualStudio.Net C#51Testing软件测试网qMU(AFCi;S
测试用例:51Testing软件测试网mk@2hu ^ Q
利用结果集来存放记录,初始化对结果集添加记录
6pUb
]/y5h0分别对记录数为10000,100000,1000000条记录的时候进行采样分析
关键测试对比代码如下,功能完全一样:51Testing软件测试网nI'k/JGW+cT
//foreach开始时间51Testing软件测试网ZdZp)RdLs/w
datetime3 = System.DateTime.Now.TimeOfDay.ToString();
3J-}tA4Z0foreach(DataRow row in relationData.Tables[RelationData.RELATIONINFO_TABLE].Rows)
n/@Gn6YC$iuV0{0buffer = row[RelationData.PK_TABLE_NAME].ToString();51Testing软件测试网1j
n2D3|*lF.Mh-O
datetime4 = System.DateTime.Now.TimeOfDay.ToString();51Testing软件测试网di
xNn0Vw#zL!Q"h
0| N1@ ov.?6r4H0//for开始时间51Testing软件测试网] [$j-B6C,n\w
datetime5 = System.DateTime.Now.TimeOfDay.ToString();
JcZ,D;E@6|.NipC0for(int j=0;j<1000000;j )
M M3{%iyIk0buffer = relationData.Tables[RelationData.RELATIONINFO_TABLE].Rows[j][RelationData.PK_TABLE_NAME].ToString();51Testing软件测试网|R1e
{eI"mI
datetime6 = System.DateTime.Now.TimeOfDay.ToString();51Testing软件测试网Tw4\9Z7h0In
c2JEoT5HcN ]7pB6d0测试结果:51Testing软件测试网3L2v
Jsw
Qvo6}
10000条记录时:
X3qUq$a/b8{p)Y0foreach读取时间:16:29:34.257758451Testing软件测试网.G(y]oGXo2n
foreach结束时间:16:29:34.267772851Testing软件测试网)[J7`[hf8J
for读取开始时间:16:29:34.267772851Testing软件测试网nb9L2Vm.]
for读取结束时间:16:29:34.287801651Testing软件测试网8Y#[-D3w.uknQ
100000条记录时:51Testing软件测试网Q id6l!V#a4q.Mu#T
foreach读取时间:16:31:10.105580851Testing软件测试网a{QzE
foreach结束时间:16:31:10.195710451Testing软件测试网bo7x%QVKf6b
for读取开始时间:16:31:10.195710451Testing软件测试网7W
~EW6f%T
for读取结束时间:16:31:10.4460704
Q5H)]6v&L0H01000000条记录时:51Testing软件测试网8O4tl*w(@ ckJ
foreach读取时间:16:33:12.6217504
2jMpJd;D0foreach结束时间:16:33:13.633204851Testing软件测试网[Up'~:Q'st
for读取开始时间:16:33:13.6332048
6`r|5B3O |0for读取结束时间:16:33:18.790620851Testing软件测试网\7a^2a8]5e6og