终于又回来了,不知不觉步入职场2年多了,重新开启了一门新的语言,C#,说是新其实也没有特别大的语法差别吧,一直也不是很热衷于写博客,或者说自己的技术还没达到用博客来教别人的程度,但是最近感觉身处的环境让自己进步缓慢,当然主要原因还是自己,没有坚持不懈去做某件事的决心和勇气,其实那些让你为之艳羡的人不过是有常人难以想象的自律罢了,我一直很喜欢一句话——越自律,越自由,与君共勉。今天废话太多了,下面正式开始。
最近在进行算法调优,有一个地方需要大量重复计算一些数据,所以我用了Parallel进行并行运算,因为还在调试阶段,我是用的Debug模式,因为运行时间太久,所以我试了一下不进行并行的时候耗时,然后结果让我很意外,进行并行的耗时反而比并行的耗时更短,时间如下
第一个和第二个是因为我有几个循环,我的测试只是在不同地方用并行而已,因为实在不知道为什么会出现这样的情况,所以我打算用VS(我用的是2015的社区版)自带的性能分析工具看一下CPU的瓶颈在哪,但是运行结果跟我预期的完全不一样,用的是同上完全相同的测试数据,时间如下:
这个结果与第一个测试结果完全相反,我进一步测试了Release模式下的运行结果,如下,
虽然一直说Debug是调试模式,会有一定的性能损耗,但是差得这么多,不知从何解释,如果有人能给我指点一二,不胜感激。