• Java中加减乘除的性能和位运算的性能比较


    测试【+ 、- 、 * 、 / 、<<、>>】加减乘除

    public class TestDemo {
        int anInt = Integer.MAX_VALUE;
    
        //21亿次+
        public void funAdd() {
            long i1=System.currentTimeMillis();
            int sum=0;
            for(int i = 0; i< anInt; i++) {
                sum+=i;
            }
            System.out.println(anInt+"次+:"+(System.currentTimeMillis()-i1));
        }
    
        //21十亿次-
        public void funSubtract() {
            long i1=System.currentTimeMillis();
            int sum=0;
            for(int i = 0; i< anInt; i++) {
                sum-=i;
            }
            System.out.println(anInt+"次-:"+(System.currentTimeMillis()-i1));
        }
    
        //21亿次*
        public void funMultiply() {
            long i1=System.currentTimeMillis();
            int sum=1;
            for(int i=0;i<anInt;i++) {
                sum*=2;
            }
            System.out.println(anInt+"次*:"+(System.currentTimeMillis()-i1));
        }
    
        //21亿次/
        public void funDivide() {
            long i1=System.currentTimeMillis();
            int sum=Integer.MAX_VALUE;
            for(int i=2;i<anInt;i++) {
                sum/=2;
            }
            System.out.println(anInt+"次/:"+(System.currentTimeMillis()-i1));
        }
    
        //21亿次<<1 等效*2
        public void funMultiplyBit() {
            long i1=System.currentTimeMillis();
            int sum=1;
            for(long i = 0; i< anInt; i++) {
                sum= sum << 1;
            }
            System.out.println(anInt+"次位乘2:"+(System.currentTimeMillis()-i1));
        }
    
        //21亿次>>1 等效/2
        public void funDivideBit() {
            long i1=System.currentTimeMillis();
            int sum=Integer.MAX_VALUE;
            for(long i = 0; i< anInt; i++) {
                sum=sum>>1;
            }
            System.out.println(anInt+"次位除2:"+(System.currentTimeMillis()-i1));
        }
    
        public static void main(String[] args) {
            TestDemo demo = new TestDemo();
            demo.funAdd();
            demo.funSubtract();
            demo.funMultiply();
            demo.funDivide();
            demo.funMultiply();
            demo.funDivideBit();
            }
        }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74

    在这里插入图片描述
    在运算中,优先使用 【>> 1】 来代替 【/ 2】可大大提升程序性能

  • 相关阅读:
    海康API返回Json值获取
    Doris 2.0.1 Dockerfile制作
    【微信小程序-初级实战】用户登录
    HTML5 新元素
    5┃音视频直播系统之 WebRTC 中的协议UDP、TCP、RTP、RTCP详解
    kubernetes--pod详解
    WPF透明置顶窗口wine适配穿透问题解决
    ARM接口实验—串口实验
    台灯a级和aa级哪个好?教育部入围护眼照明品牌推荐
    ThingsBoard远程RPC调用设备
  • 原文地址:https://blog.csdn.net/qq_46548855/article/details/126168232