Skip to content

性能报告

JavaScript Utils 库经过全面的性能基准测试,确保所有工具函数都具有优秀的性能表现。

基准测试概览

我们使用 Vitest 的基准测试功能对所有工具函数进行了性能测试,测试结果如下:

数组工具 (Array Utilities)

函数操作/秒性能等级说明
isArray~9,290,000⚡ 极快简单的类型检查,性能最优
unique (小数组)~5,026,000⚡ 极快小数组去重性能优秀
chunk (大块)~143,000🚀 很快大块分割性能良好
chunk (小块)~35,000🚀 很快小块分割性能良好
unique (混合类型)~32,000🚀 很快混合类型去重性能良好
unique (大数组重复)~1,000⚠️ 较慢大数组重复数据去重较慢

函数工具 (Function Utilities)

函数操作/秒性能等级说明
debounce (创建)~9,437,000⚡ 极快函数创建性能最优
delay (创建)~9,413,000⚡ 极快延迟函数创建性能优秀
throttle (创建)~9,024,000⚡ 极快节流函数创建性能优秀
delay (执行)~2,430,000⚡ 极快延迟执行性能优秀
debounce (执行)~1,517,000⚡ 极快防抖执行性能优秀
throttle (执行)~1,381,000⚡ 极快节流执行性能优秀

对象工具 (Object Utilities)

函数操作/秒性能等级说明
deepCopy (小对象)~5,516,000⚡ 极快小对象深拷贝性能最优
pick (少量键)~3,026,000⚡ 极快少量键选择性能优秀
deepCopy (嵌套对象)~187,000🚀 很快嵌套对象深拷贝性能良好
pick (大量键)~75,000🚀 很快大量键选择性能良好
omit (少量键)~31,000🚀 很快少量键排除性能良好
omit (大量键)~30,000🚀 很快大量键排除性能良好
deepCopy (大对象)~4,000⚠️ 较慢大对象深拷贝较慢

字符串工具 (String Utilities)

函数操作/秒性能等级说明
capitalize (短文本)~6,951,000⚡ 极快短文本首字母大写性能最优
capitalize (长文本)~5,984,000⚡ 极快长文本首字母大写性能优秀
convert2pinyin (中文)~2,022,000⚡ 极快中文转拼音性能优秀
convert2pinyin (短文本)~1,528,000⚡ 极快短文本转拼音性能优秀
camelCase (各种格式)~1,050,000⚡ 极快驼峰转换性能优秀
convert2pinyin (混合文本)~1,054,000⚡ 极快混合文本转拼音性能优秀
camelCase (长文本)~3,000⚠️ 较慢长文本驼峰转换较慢
convert2pinyin (长文本)~1,800⚠️ 较慢长文本转拼音较慢

验证工具 (Validation Utilities)

函数操作/秒性能等级说明
isEmail (无效邮箱)~3,757,000⚡ 极快无效邮箱验证性能最优
isPhone (有效手机)~3,507,000⚡ 极快有效手机验证性能优秀
isPhone (无效手机)~3,245,000⚡ 极快无效手机验证性能优秀
isEmail (有效邮箱)~3,150,000⚡ 极快有效邮箱验证性能优秀
checkIdNumber (无效ID)~1,852,000⚡ 极快无效身份证验证性能优秀
checkIdNumber (有效ID)~1,513,000⚡ 极快有效身份证验证性能优秀

性能等级说明

  • 极快 (>1M ops/sec): 性能最优,适合高频调用
  • 🚀 很快 (100K-1M ops/sec): 性能优秀,适合常规使用
  • ⚠️ 较慢 (<100K ops/sec): 性能一般,适合低频使用

性能优化建议

1. 高频操作优化

  • 对于需要频繁调用的操作,优先使用性能等级为"极快"的函数
  • isArraydebouncethrottledelay 等函数创建性能最优

2. 大数据处理

  • 对于大数组去重,考虑分批处理或使用其他优化策略
  • 大对象深拷贝时,考虑是否真的需要深拷贝,或使用浅拷贝替代

3. 字符串处理

  • 长文本处理时,考虑分块处理或使用流式处理
  • 中文转拼音等复杂操作,对于长文本建议缓存结果

4. 验证函数

  • 所有验证函数性能都很好,可以放心使用
  • 身份证验证相对较慢,但仍在可接受范围内

基准测试环境

  • 测试框架: Vitest v1.6.1
  • Node.js: v22.x
  • 测试数据: 各种大小的测试数据集
  • 测试方法: 多次运行取平均值

持续性能监控

我们会在每次发布前运行基准测试,确保性能不会退化。如果发现性能问题,会及时优化并更新此文档。


最后更新: $(date)

基于 MIT 许可发布