按bit写入的性能小测试
来源:互联网 发布:淘宝上好的牛排店 编辑:程序博客网 时间:2024/06/05 16:38
要求:
要对byte[]数组按照bit一位一位写入,有两种方式:
1. 从第0位到第7位,在第i位时用待写入的byte和1<<i
做”|
“操作。
2. 在末位与1做或操作,然后整体做<<
位移。
结论:第二种较快。
代码如下:
Random r = new Random(); int testLen = 100000000; boolean[] writeBits = new boolean[testLen]; for (int i = 0; i < writeBits.length; i++) { writeBits[i] = ((r.nextInt() & 1) == 0); } byte bb = 0; long start = 0;//避免类加载问题,第一个、第二个测试不算// start = System.nanoTime(); start = System.currentTimeMillis(); for (int i = 0; i < writeBits.length; i++) { bb <<= 1; if (writeBits[i]) bb |= 1; }// System.out.println(System.nanoTime()-start); System.out.println(System.currentTimeMillis()-start);// start = System.nanoTime(); start = System.currentTimeMillis(); for (int i = 0; i < writeBits.length; i++) { if (writeBits[i]) bb |= 1 << (i%8); }// System.out.println(System.nanoTime()-start); System.out.println(System.currentTimeMillis()-start);//方法1// start = System.nanoTime(); start = System.currentTimeMillis(); for (int i = 0; i < writeBits.length; i++) { if (writeBits[i]) bb |= 1 << (i%8); }// System.out.println(System.nanoTime()-start); System.out.println(System.currentTimeMillis()-start);//方法2// start = System.nanoTime(); start = System.currentTimeMillis(); for (int i = 0; i < writeBits.length; i++) { bb <<= 1; if (writeBits[i]) bb |= 1; }// System.out.println(System.nanoTime()-start); System.out.println(System.currentTimeMillis()-start);
结果(毫秒数):
397471473400
阅读全文
0 0
- 按bit写入的性能小测试
- Spark2.x写入Elasticsearch的性能测试
- 性能测试的小思考
- python 测试mysql写入性能
- 关于SQLite索引对写入性能影响的测试
- 小测试C#中反射的性能
- linked服务器的性能一个小测试。
- xilinx的bit文件格式如何写入FPGA
- 性能测试小Tips
- 性能测试小Tips
- oracle性能小测试
- 性能测试小Tips
- 数据库写入性能测试小工具
- Cassandra写入性能测试(集群环境)
- RainbowTable 的使用和性能的小测试
- ActiveMQ的kahadb写入消息性能测试(包括SSD硬盘)
- GridView vsDataList 性能小测试
- 性能测试小案例分析
- Softmax Regression with MNIST
- matlab图像锐化
- Spring中ClassPathXmlApplicationContext类的简单使用
- cocos2d-x 3.x内存管理
- ios集成ijkplayer框架
- 按bit写入的性能小测试
- Jna
- leetcode 661. Image Smoother
- cscope 使用时打开新的窗口
- No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '***' is theref
- 我来试试
- uboot启动第二阶段1
- java遍历Excel行
- 关于排列组合算法的心得