Java代码如何使用位运算优化代码呢?
下文笔者讲述Java中普通运算优化为位运算--提速效果演示
如: 乘以8,可转换为左移3位 除以2,可使用右移1位例:普通计算修改为位运算
package com.java265; import java.util.Arraylist; import java.util.List; public class TestClass { public static void main(String[] args) { for (int i = 0; i < 10000; i++) { method(); betterMethod(); } } private static void betterMethod() { long startTime = System.nanoTime(); int[] array = new int[]{123, 435, 4536, 5678, 123, 345, 435, 4536, 5678, 223}; int length = array.length; for (int i = 0; i < length; i++) { int result = array[i] << 3 >> 1; } System.out.println("优化-位运算,总耗时:" + (System.nanoTime() - startTime) + "纳秒"); } private static void method() { long startTime = System.nanoTime(); List<Integer> list = new ArrayList<>(); list.add(123); list.add(435); list.add(4536); list.add(5678); list.add(123); list.add(345); list.add(435); list.add(4536); list.add(5678); list.add(223); for (int i = 0; i < list.size(); i++) { int result = list.get(i) * 8 / 2; } System.out.println("普通运算,总耗时:" + (System.nanoTime() - startTime) + "纳秒"); } } -----运行结果---------- 普通运算,总耗时:600纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:800纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:800纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:700纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:600纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:600纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:600纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:600纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:700纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:2100纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:800纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:800纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:700纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:800纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:5500纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:900纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:700纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:800纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:700纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:3000纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:900纳秒 优化-位运算,总耗时:100纳秒 普通运算,总耗时:700纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:900纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:800纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:900纳秒 优化-位运算,总耗时:0纳秒 普通运算,总耗时:1000纳秒 优化-位运算,总耗时:0纳秒
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。