获取uuid哪种方法效率最高

近期旁边的同事问我,获取uuid有什么方法?

我随口就回答:用uuid包,因为一直都在用,感觉没啥问题。

后来他手动调了几下自己写的函数,说:有几毫秒的性能消耗。

我心想不是正常的吗?

他又说,有没有再快一点的获取方法?

我说,我找找。

找了3个来做一下性能测试,比较下它们的性能。

randomUUIDuuidnanoid
nodejs原生自带github(13.2K Start)github(20.4K Start)

来个10万次循环测试下它们的性能。

let startTime = new Date().getTime();
let str = '';
console.log('=======start randomUUID======')
console.log(startTime);

const {randomUUID} = require('crypto');
const total = 100000;

for (let i = 0; i < total; i++) {
    str = randomUUID()
}

let endTime = new Date().getTime();
console.log(endTime);
let sub = endTime - startTime;

console.log(str);
console.log(sub);
console.log('=======edn randomUUID======');


startTime = new Date().getTime();
console.log('=======start uuid======')
console.log(startTime);

const { v4 } = require('uuid');


for (let i = 0; i < total; i++) {
    str = v4();
}

endTime = new Date().getTime();
console.log(endTime);
sub = endTime - startTime;

console.log(str);
console.log(sub);
console.log('=======edn uuid======');

startTime = new Date().getTime();
console.log('=======start nanoid======')
console.log(startTime);

const { nanoid } = require("nanoid");

for (let i = 0; i < total; i++) {
    str= nanoid();
}

endTime = new Date().getTime();
console.log(endTime);
sub = endTime - startTime;

console.log(str);
console.log(sub);
console.log('=======edn nanoid======');

结论:

在这里插入图片描述

测试项randomUUIDuuidnanoid
用时(毫秒)5828963
生成格式f3c285ef-45ef-4f05-a087-0e44395b7a24bc9d99be-c6b3-439a-b139-67722a43bf71bYALoMs3jocZoUhF-0yYn

大家可以发现,nodejs原生自带的函数效率最高,其次是nanoid,效率最低是uuid包。

至于生成格式方面,nanoid有更短的生成方式,在牺牲一些性能的前提可以考虑。

最后,发现自己的不足,所谓三人行必有我师,多思考生活工作中遇到的问题,将有助于我们更好地看清这个复杂的世界。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lcwai

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值