public class Test2
{
public static void main(String[] args)
{
FunctionOne();
FunctionTwo();
for(int i=1;i<10;i++)//照理来说应该是位移运算是最快的,可是在我机器运行,多次运行!然后比较2者运算时间不确定
{
FunctionOne();
FunctionTwo();
}
}
private static void FunctionOne()//方法1:直接相乘 看处理器时间
{
int result=0;//保存结果
long pre=System.currentTimeMillis();//当前时间
long post=0;//保存运行结束后时间
for(int i=0;i<100000000;i++)//运行1亿次,看运行时间
result = 3*8;
post=System.currentTimeMillis();
System.out.println("方法1 运行时间为:"+(post-pre)+" ms"+" 3乘8的结果为:"+result);
}
private static void FunctionTwo()//通过位移 左移3位,相当于成8,理论上速度更快!
{
int result=0;//保存结果
long pre=System.currentTimeMillis();//当前时间
long post=0;//保存运行结束后时间
for(int i=0;i<100000000;i++)//运行1亿次,看运行时间
result = 3<<3;
post=System.currentTimeMillis();
System.out.println("方法2 运行时间为:"+(post-pre)+" ms"+" 3乘8的结果为:"+result);
}
} |