概述
如今网络上有一种呼声,说现在的编译器足够智能,会对代码自动地进行一些常见的优化,一些老的优化方法已经不再适用了,比如用右移代替除法运算、预计算等等。
很可惜,如今的C# 虽然具有一些编译优化的功能,但还不象网络上所传颂的智能编译器那样的智能。
经过实验发现,用右移代替除法运算、预计算等等技巧显然并未过时;经过实验发现:对于整形来说,右移一位确实比除以2要快一些,大约快了 2%。
using System;
namespace speed
{
class Program
{
static void Main(string[] args)
{
int i, j;
int source = 64556;
DateTime dt = DateTime.Now;
for (i = 0; i < 1000000000; i++)
{
j = source / 4;
}
TimeSpan ts = DateTime.Now - dt;
Console.WriteLine("/ cost time {0}", ts.ToString());
dt = DateTime.Now;
for (i = 0; i < 1000000000; i++)
{
j = source >> 2;
}
ts = DateTime.Now - dt;
Console.WriteLine(">> cost time {0}", ts.ToString());
Console.Read();
}
}
}
/ cost time 00:00:02.8941656 >> cost time 00:00:02.8731643
最后
以上就是繁荣溪流为你收集整理的整型 右移 与 除法 的优化比较的全部内容,希望文章能够帮你解决整型 右移 与 除法 的优化比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复