C#开方运算比加法运算快?
2009-01-14 10:10 Johnny Qian 阅读(1575) 评论(7) 编辑 收藏 举报近日,在写C#程序的时候遇到了个很奇怪的问题:开方运算竟然比加法运算快!?
代码如下:
int stime1 = DateTime.Now.Second * 1000 + DateTime.Now.Millisecond; int j = 0; int k = 0; for (int i = 0; i < 5000000; i++) { k = j + 10000; } int etime1 = DateTime.Now.Second * 1000 + DateTime.Now.Millisecond; //add_count.Text = (etime1 - stime1).ToString(); add_count.Text = etime1.ToString() + " -" + stime1.ToString() + " =" + (etime1 - stime1).ToString(); int stime2 = DateTime.Now.Second * 1000 + DateTime.Now.Millisecond; for (int i = 0; i < 5000000; i++) { System.Math.Sqrt(20); } int etime2 = DateTime.Now.Second * 1000 + DateTime.Now.Millisecond; //sqr_count.Text = (etime2 - stime2).ToString(); sqr_count.Text = etime2.ToString() + " -" + stime2.ToString() + " =" + (etime2 - stime2).ToString();
很简单的几行代码,但跑出来的结果,让人很迷惑。
本想开方运算肯定比加法运算慢很多,而结果中开方运算反而比加法运算快!反复刷新N次,结果还是差不多。真是无语了~~~
但是在我的另外一个项目中,用的是相同一段代码,结果是比较正常的:
哪位高手能解释一下,小弟先行谢过了。
本文基于知识共享署名 2.5 中国大陆许可协议发布,欢迎转载、演绎或用于商业目的,但是必须保留本文的署名Johnny Qian和链接。