使用java9的uuid生成方式,让uuid生成速度提升一个档次
使用 java9 的 uuid 生成方式,让你的 uuid 生成速度提升一个档次。
简介
UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
uuid 常用场景
- IOT 设备,设备号;
- 网站 sessionid,cookie 用户id;
- 数据库主键id;
uuid 生成工具
- hutool Java工具包集
- mica 基于 Spring、 java8 微服务工具集
压测代码
测试基于 JMH,是专门用于代码微基准测试的工具套件,基于方法层面的基准测试,精度可以达到微秒级。压测代码源码存放于 github,感兴趣的朋友可以访问:github.com/lets-mica/m… 获取。
jdk8UUId
@Benchmark
public String jdk8UUId() {return UUID.randomUUID().toString();
}
复制代码
jdk8ThreadLocalRandomUUId
@Benchmark
public String jdk8ThreadLocalRandomUUId() {ThreadLocalRandom random = ThreadLocalRandom.current();UUID uuid = new UUID(random.nextInt(), random.nextInt());return uuid.toString();
}
复制代码
hutoolFastSimpleUUID
@Benchmark
public String hutoolFastSimpleUUID() {return IdUtil.fastSimpleUUID();
}
复制代码
micaUUId
@Benchmark
public String micaUUId() {return StringUtil.getUUID();
}
复制代码
压测环境
- OS: macOS Mojave
- CPU: 2.8 GHz Intel Core i5
- RAM: 8 GB 1600 MHz DDR3
- JVM: Oracle 1.8.0_201 64 bits
压测结果
Benchmark | Score | Error | Units |
---|---|---|---|
jdk8UUId | 734.595 | 17.220 | ops/ms |
jdk8ThreadLocalRandomUUId | 3224.759 | 32.107 | ops/ms |
hutoolFastSimpleUUID | 3619.748 | 67.195 | ops/ms |
micaUUId(java9 方式) | 12375.405 | 241.879 | ops/ms |
说明:每毫秒生成的 uuid
数,得分越高越好。
总结
mica 由于参考(copy) java9 的 uuid 生成方式性能强劲,是 jdk8 ThreadLocalRandom 和 hutool FastSimpleUUID 的3到4倍的。
由于 uuid 的使用场景一般都需要高性能高并发,大家在使用的时候可以尝试使用 java9+
或者参考他的算法去实现。
开源推荐
- Spring boot 微服务高效开发
mica
工具集:gitee.com/596392912/m… Avue
一款基于vue可配置化的神奇框架:gitee.com/smallweigit…pig
宇宙最强微服务(架构师必备):gitee.com/log4j/pigSpringBlade
完整的线上解决方案(企业开发必备):gitee.com/smallc/Spri…IJPay
支付SDK让支付触手可及:gitee.com/javen205/IJ…
关注我们
扫描上面二维码,更多精彩内容每天推荐!
转载于:https://juejin.im/post/5c9effb86fb9a05e7b5c568a
使用java9的uuid生成方式,让uuid生成速度提升一个档次相关推荐
- 使用java9的uuid生成方式,让uuid生成速度提升一个档次...
简介 UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定. uuid 常用场景 IOT 设备,设备号: 网站 sessionid,cookie ...
- 将端到端文本转语音速度提高38倍,全新语音合成系统FastSpeech 梅尔谱的生成速度提升270倍,微软和浙大联合推出
将端到端文本转语音速度提高38倍,全新语音合成系统FastSpeech 梅尔谱的生成速度提升270倍,微软和浙大联合推出 目前,基于神经网络的端到端文本到语音合成技术发展迅速,但仍面临不少问题--合成 ...
- UUID/GUID介绍、生成规则及生成代码
UUID/GUID介绍.生成规则及生成代码 1. UUID介绍 1.1 介绍 1.2 UUID优势 1.3 UUID劣势 2. UUID版本 2.1 版本1 - 基于时间的UUID 2.1.1优点 2 ...
- java uuid静态方法_Java UUID nameUUIDFromBytes()方法及示例
java uuid静态方法 UUID类名UUIDFromBytes()方法 (UUID Class nameUUIDFromBytes() method) nameUUIDFromBytes() me ...
- golang not enough arguments in call to uuid.Must have (uuid.UUID) want (uuid.UUID, error)
golang not enough arguments in call to uuid.Must have (uuid.UUID) want (uuid.UUID, error) 相信出现此问题的都是 ...
- linux查看设备的uuid,设备的UUID详解 - 笑遍世界的测试技术 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
第一次看到UUID这个东西,是在Ubuntu系统中看到/boot/grub/grub.cfg中对kernel的配置: linux/boot/vmlinuz-2.6.31-14-generic root ...
- java uuid静态方法_Java UUID equals()方法与示例
java uuid静态方法 UUID类equals()方法 (UUID Class equals() method) equals() method is available in java.util ...
- java uuid静态方法_Java UUID toString()方法与示例
java uuid静态方法 UUID类toString()方法 (UUID Class toString() method) toString() method is available in jav ...
- java uuid静态方法_Java UUID compareTo()方法与示例
java uuid静态方法 UUID类compareTo()方法 (UUID Class compareTo() method) compareTo() method is available in ...
最新文章
- ​​​​​​​Git学习笔记与IntelliJ IDEA整合
- java lambdamart库,LambdaMART 之 lambda(示例代码)
- 程序猿误区:程序员只负责编码
- Oracle bug 使用max或min函数into到一个char类型报字符缓冲区太小的错误
- FreeRTOS 教程指南 学习笔记 第一章 简介
- Win7安装英文语言包(图文)
- Magisk 安装说明
- AvalonDock 2.0+Caliburn.Micro+MahApps.Metro实现Metro风格插件式系统(菜单篇)
- 苹果电脑装双系统利弊有哪些
- 三极管电路限流电阻如何选择
- 信号量机制(P,V操作)
- 别乱说,算法才不是脑筋急转弯
- win10连接文件服务器记住密码如何删除,win10系统访问共享文件夹需要密码的取消方法...
- 1.3_VMare 16 虚拟机安装配置 CentOS-7-x86_64-DVD-2009+GUI+原生 Java 1.8+ibus+VMware Tools
- 《网络架构系列2-Http详解》
- igg google
- 西安交通大学城市学院计算机二级,西安交通大学城市学院计算机系举行考研经验分享交流会...
- 图片站选择什么样的服务器好?
- 嵌入式linux播放视频 mplayer,mplayer 移植后无法播放视频
- 股票成交价格确定方法详解
热门文章
- java动态删除属性值_JavaBean动态添加删除属性
- ming window 交叉编译_Golang在windows下交叉编译linux程序
- 报表类似选项卡的功能
- kafka的消费者客户端偏移的维护
- 将Excel VBA封装成exe程序[老贴收藏]
- VB 提取TextBox 文本框中指定一行字符串
- SpringBoot实战(十四):Spring Boot Admin 集成安全模块
- 官方钦定TensorFlow2.0要改这个API,用户吐槽:全世界都是keras
- 刚刚,自动驾驶路测国家规范出台:无人车即将开上更多实际道路
- JS+XMLDOM+XSL:实现中英文界面切换、排序、分页显示、增删改查XML文件数据源