UUID 的目的,是讓分佈式系統中的全部元素,都能有惟一的辨識信息,而不須要經過中央控制端來作辨識信息的指定。vue
測試基於 JMH,是專門用於代碼微基準測試的工具套件,基於方法層面的基準測試,精度能夠達到微秒級。壓測代碼源碼存放於 github,感興趣的朋友能夠訪問:github.com/lets-mica/m… 獲取。java
@Benchmark
public String jdk8UUId() {
return UUID.randomUUID().toString();
}
複製代碼
@Benchmark
public String jdk8ThreadLocalRandomUUId() {
ThreadLocalRandom random = ThreadLocalRandom.current();
UUID uuid = new UUID(random.nextInt(), random.nextInt());
return uuid.toString();
}
複製代碼
@Benchmark
public String hutoolFastSimpleUUID() {
return IdUtil.fastSimpleUUID();
}
複製代碼
@Benchmark
public String micaUUId() {
return StringUtil.getUUID();
}
複製代碼
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
數,得分越高越好。git
mica 因爲參考(copy) java9 的 uuid 生成方式性能強勁,是 jdk8 ThreadLocalRandom 和 hutool FastSimpleUUID 的3到4倍的。github
因爲 uuid 的使用場景通常都須要高性能高併發,你們在使用的時候能夠嘗試使用 java9+
或者參考他的算法去實現。算法
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…掃描上面二維碼,更多精彩內容天天推薦!數據庫