当前位置: 首页 > news >正文

fastutil简单测试下性能

前言

简单测试一下fastutil的实现和Java类库实现的速率。
使用jmh进行测试。
简单解释一下,每轮测试预热2次,每次1s;实测2次,每次1秒。
进行5轮测试。数组大小3种。

package fastutil;import it.unimi.dsi.fastutil.ints.IntArrayList;
import org.openjdk.jmh.annotations.*;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;@State(Scope.Benchmark)
@Warmup(iterations = 2, time = 1000, timeUnit = TimeUnit.MILLISECONDS)
@Measurement(iterations = 2, time = 1000, timeUnit = TimeUnit.MILLISECONDS)
@Fork(value = 5)
public class ArrayListTest {@Param({"500000", "5000000", "50000000"})public int size;@Benchmark@BenchmarkMode(Mode.AverageTime)public List<Integer> insertArrayList() {List<Integer> list = new ArrayList<>(size);for (int i = 0; i < size; i++) {list.add(i);}return list;}@Benchmark@BenchmarkMode(Mode.AverageTime)public List<Integer> insertIntArrayList() {List<Integer> list = new IntArrayList(size);for (int i = 0; i < size; i++) {list.add(i);}return list;}@Benchmark@BenchmarkMode(Mode.AverageTime)public List<Integer> insertIntArrayList2() {IntArrayList list = new IntArrayList(size);for (int i = 0; i < size; i++) {list.add(i);}return list;}
}

测试结果

Benchmark                            (size)  Mode  Cnt   Score    Error  Units
ArrayListTest.insertArrayList        500000  avgt   10   0.010 ±  0.001   s/op
ArrayListTest.insertArrayList       5000000  avgt   10   0.097 ±  0.014   s/op
ArrayListTest.insertArrayList      50000000  avgt   10   1.045 ±  0.051   s/op
ArrayListTest.insertIntArrayList     500000  avgt   10   0.002 ±  0.001   s/op
ArrayListTest.insertIntArrayList    5000000  avgt   10   0.019 ±  0.001   s/op
ArrayListTest.insertIntArrayList   50000000  avgt   10   0.187 ±  0.006   s/op
ArrayListTest.insertIntArrayList2    500000  avgt   1010⁻³            s/op
ArrayListTest.insertIntArrayList2   5000000  avgt   10   0.006 ±  0.001   s/op
ArrayListTest.insertIntArrayList2  50000000  avgt   10   0.057 ±  0.003   s/op

insertArrayListinsertIntArrayList对比可以认为fastutil插入intlist会比原生类库更快。
insertIntArrayListinsertIntArrayList2对比可以认为不通过泛型声明还会更快。

http://www.lryc.cn/news/96636.html

相关文章:

  • 【FAQ】关于无法判断和区分用户与地图交互手势类型的解决办法
  • 腾讯云裸金属服务器CPU型号处理器主频说明
  • 工程安全监测无线振弦采集仪在建筑物中的应用
  • 【iOS】isKindOfClass和isMemberOfClass方法
  • 李飞飞「具身智能」VoxPoser:0预训练完成复杂指令
  • 前端八股文
  • 前端年度工作述职报告优秀
  • 【MyBatis 学习一】认识MyBatis 第一个MyBatis查询
  • TCP 和 UDP
  • springboot配置自定义数据源(Druid德鲁伊)的步骤。
  • K8S:容器日志收集与管理
  • Flutter系列文章-Flutter进阶
  • 【C++】C++11右值引用|新增默认成员函数|可变参数模版|lambda表达式
  • rust学习-线程
  • 题目:2180.统计各位数字之和为偶数的整数个数
  • 3dsmax制作一个机器人
  • C++的类型转换运算符:reinterpret_cast
  • flask中的cookies介绍
  • adnroid 11. 0 Activity启动流程图解
  • 了解Unity编辑器之组件篇Physics(四)
  • “数字中华 点亮未来”中华线上客户节 盛大开幕
  • 中文分词入门:使用IK分词器进行文本分词(附Java代码示例)
  • CTFSHOW web 信息收集
  • 速锐得开发社区-新一代汽车网络通信技术CAN FD的特点归纳
  • Android adb shell 查看App内存(java堆内存/vss虚拟内存/详细的内存状况/内存快照hprof)和系统可用内存
  • java篇 类的进阶0x0A:万类之祖:Object 类
  • AVFoundation - 音频录制
  • Jmeter+MySQL链接+JDBC Connection配置元件+使用
  • 统一观测丨使用 Prometheus 监控 Cassandra 数据库最佳实践
  • Hive视图