Java位移 *** 作真的比乘法快吗?

Java位移 *** 作真的比乘法快吗?,第1张

一直都有人说Java的位移运算比乘法快,所以我也一直信了,今天突然想起来了,就想试一试,不试不知道,一试吓一跳,原来信了这么长时间的知识,是假的!如有错误请指正。

代码
public class Java {

    public static void main(String[] args) {

        //测试位移 *** 作
        long time=0;
        for (int r=0;r<100;r++){
            int i=1;
            long startTime=System.currentTimeMillis();
            for (long j=0L;j<5000000000L;j++){
                int k = i << 3;
            }
            long endTime=System.currentTimeMillis();
            time=endTime-startTime;
            System.out.println(time);

            //测试乘法 *** 作
            i=1;
            startTime=System.currentTimeMillis();
            for (long j=0L;j<5000000000L;j++){
                int k = i * 8;
            }
            endTime=System.currentTimeMillis();
            time=endTime-startTime;
            System.out.println(time);
            System.out.println();
        }

    }
}
结果
2143
1656

1646
1654

1645
1640

1643
1690

1640
1640

1650
1649

1645
1647

1639
1652

1641
1651

1645
1643

1640
1659

1636
1643

1641
1639

1644
1644

1646
1638

1640
1636

1650
1639

1640
1642

1638
1640

1635
1639

1637
1649

1640
1641

1683
1642

1660
1639

1638
1643

1642
1636

1655
1639

1651
1664

1640
1640

1640
1636

1651
1643

1639
1643

试了之后除了第一次时间有点差距,后边的时间都差不多,所以我感觉是jvm做了优化。经过这次之后,看来别人的各种优化代码的手段也不能全信,还是需要自己试一试的。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/720353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存