.GAME FRAMEWORK

开始用.NET构建我们梦想中的游戏

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

由于dudu那边的测试结果和我的很不一致(他那边ThreadPool比Single要慢,结果正好和我的反过来),因此我怀疑我所做的测试不准确,太过几乎公布结果了。因此我又重新测试了一遍,测试结果如下:


--此前大约有6、7个热身测试,结果已删除。

--此处测试的时候,MSN、QQ已注销,网线连接,只有一个IE窗口,VS打开。
--测试使用Release版本,不在调试状态。

测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 141,703,760.00
 Single 总测试时间为 142,204,480.00
测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 140,902,608.00
 Single 总测试时间为 141,904,048.00
测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 140,502,032.00
 Single 总测试时间为 141,904,048.00
测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 140,301,744.00
 Single 总测试时间为 142,104,336.00

--此处测试的时候,MSN、QQ、VS退出,网线拔掉,没有IE窗口。
--测试使用版本相同(同一次运行)

测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 139,100,016.00
 Single 总测试时间为 139,400,448.00
测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 138,899,728.00
 Single 总测试时间为 139,200,160.00
测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 138,799,584.00
 Single 总测试时间为 139,300,304.00
测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 139,200,160.00
 Single 总测试时间为 139,200,160.00

--我连TaskMan也关掉看看。能关的都关了

测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 138,399,008.00
 Single 总测试时间为 138,399,008.00
测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 138,198,720.00
 Single 总测试时间为 138,399,008.00
测试对象 100 个,测试强度基数为 10000 的情况下:
 ThreadPool 总测试时间为 138,298,864.00
 Single 总测试时间为 138,599,296.00
测试对象 100 个,测试强度基数为 10000 的情况下:
(注:在这次测试时,大概是Single的时候,出现了磁盘操作,不知道是问什么,估计因此对结果有影响)
 ThreadPool 总测试时间为 137,998,432.00
 Single 总测试时间为 138,399,008.00
测试对象 100 个,测试强度基数为 10000 的情况下:
(注:在这次测试时,大概是ThreadPool的时候,出现了磁盘操作,不知道是问什么,估计因此对结果有影响)
 ThreadPool 总测试时间为 138,499,152.00
 Single 总测试时间为 138,399,008.00
测试对象 100 个,测试强度基数为 10000 的情况下:
(注:在这次测试时,大概是ThreadPool的时候,出现了磁盘操作,不知道是问什么,估计因此对结果有影响)
 ThreadPool 总测试时间为 138,298,864.00
 Single 总测试时间为 138,499,152.00
测试对象 100 个,测试强度基数为 10000 的情况下:
(注:在这次测试时,大概是ThreadPool的时候,出现了磁盘操作,不知道是问什么,估计因此对结果有影响)
 ThreadPool 总测试时间为 138,198,720.00
 Single 总测试时间为 138,499,152.00

--最小化之后然后再来做相同的测试

测试对象 100 个,测试强度基数为 10000 的情况下:
(注:在这次测试时,大概是Single的时候,出现了磁盘操作,不知道是问什么,估计因此对结果有影响)
 ThreadPool 总测试时间为 138,098,576.00
 Single 总测试时间为 138,899,728.00

--不做这个测试了,换一个参数再来(开了一个NotePad,拷贝一下结果)
--从这里开始不再记录磁盘IO操作了。

测试对象 150 个,测试强度基数为 3000 的情况下:
 ThreadPool 总测试时间为 92,733,344.00
 Single 总测试时间为 92,733,344.00
测试对象 150 个,测试强度基数为 3000 的情况下:
 ThreadPool 总测试时间为 92,633,200.00
 Single 总测试时间为 92,833,488.00
测试对象 150 个,测试强度基数为 3000 的情况下:
 ThreadPool 总测试时间为 92,432,912.00
 Single 总测试时间为 92,733,344.00
测试对象 150 个,测试强度基数为 3000 的情况下:
 ThreadPool 总测试时间为 92,232,624.00
 Single 总测试时间为 92,633,200.00

--再换一组参数

测试对象 1000 个,测试强度基数为 300 的情况下:
 ThreadPool 总测试时间为 408,887,952.00
 Single 总测试时间为 408,787,808.00

--上面的结果证明计算量比较小的纯数学计算,用多线程并不占优势。
--下面打算用一组比较变态的参数来测试一次,看看大量测试对象,同时强度比较大的情况下,结果会如何。

测试对象 500 个,测试强度基数为 5000 的情况下:
 ThreadPool 总测试时间为 1,721,976,080.00
 Single 总测试时间为 1,724,780,112.00

--不要试图测试:1000个任务,强度10000的情况,这样大概需要4个半小时来完成一次测试。
--不测了,太累了。

最后至少证明我的测试还是比较准确的,至于dudu那边为什么正好结果相反,我也不清楚为什么。
呵呵,仅当内部资料吧……

posted on 2004-06-03 12:36  我们的游戏世界  阅读(2315)  评论(6编辑  收藏  举报