什么是 Benchmarks?

《工欲善其事,必先利其器》

大家好,我是vk,好久不见。国庆回来了,感觉有好多功课又落下了。。。那么就以一篇小文章开始,提前回归我们的工作日常吧!

起初,我也不知道 benchmark 这个文件是做什么的。抱着求知的心态打开翻译软件,翻译过来是 “基准”、“检测” 的意思。这时候我有了点思路,结合文件内的程序,大概能猜出来这是一个存放 测试标准和性能程序 的文件夹。

一、benchmark 能做什么?

在学习 vue 源码时,项目里就存在 benchmark 文件夹:

打开 big-table 文件夹的 index.html 文件:

直到看见 ROWS = 1000 这个变量,我才明白,这的确是用于测试性能的程序。言外之意,benchmark 的目的主要有两种,一是用大量的数据验证性能(例如表格,svg,列表等);另一个是获得一些基准数据,从而可以与本软件的其他版本或其他同类软件进行比较。

无独有偶,其实并非只有 vue 才会进行 benchmarks 测试。相反,benchmark 测试不一定会发生在每个版本的开发期间。有可能仅会在有较大改动的时候才会进行一次 benchmark 测试。


(图片来自稀土掘金)

根据上图可知,这里渲染了大量的带状态的组件实例,这是 v2v3 针对以前的 object.defineProperty 和 现在的 Proxy 这两个不同的 API 进行的,属于 benchmarks 测试。

这里测试得出的结果是,v3 拥有更加优越的性能和基准数据,这是质的提升。

二、benchmarks 和 单元测试一样吗?

答案肯定是不一样的。两种测试方式的目的和阶段不同。

  • 单元测试发生在开发阶段,当一个新功能、新程序开发好,或者对原有程序进行了改动之后,需要通过单元测试来验证其正确性。单元测试可能会发生多次,每个大小版本可能都要进行,有时候还会进行多次。
  • benchmark 的目的主要有两种,一是验证性能,另一个是获得一些基准数据,从而可以与本软件的其他版本或其他同类软件进行比较。通常不使用 benchmark 做正确性验证。benchmark 测试不一定会发生在每个版本的开发期间。有可能仅会在有较大改动的时候才会进行一次 benchmark 测试。因此频率相对单元测试来说要低很多。

例如上面 vue 的性能测试,正是单元测试做不到的。

参考文章:

  • github很多项目中有 benchmarks这个目录,到底是干什么的?

最后,感谢你的阅读,愿你的未来一片光明。

什么是 Benchmarks?相关推荐

  1. Intel QuickAssist Technology and OpenSSL – Benchmarks and Setup Tips

    Intel QuickAssist Technology and OpenSSL – Benchmarks and Setup Tips 来源:https://www.servethehome.com ...

  2. filecoin benchmarks v25 GeForce GTX 1080 Ti

    filecoin benchmarks v25 GeForce GTX 1080 Ti 1,GeForce GTX 1080 Ti 1,GeForce GTX 1080 Ti lotus版本 # cd ...

  3. Ubuntu 18.04安装GPGPU-Sim,运行ispass-2009 benchmarks

    最近做实验要搭建GPGPU-Sim环境,无奈这个软件太过小众,官网教程也不明确,百度只查到大光叔叔在2015年发的比较完整的安装方法(大光安装方法),但安装的Ubuntu版本太过老旧,还是server ...

  4. 【2022 小目标检测综述】Towards Large-Scale Small Object Detection: Survey and Benchmarks

    Towards Large-Scale Small Object Detection: Survey and Benchmarks 论文简介: 论文动机: 小目标检测方法回顾: 问题定义: 主要挑战: ...

  5. (最新)cpu天梯图 (CPU)- Processor Benchmarks

    cpu天梯图,cpu Benchmarks见下列网址: PassMark CPU Benchmarks - Single Thread Performance CPU UserBenchmarks - ...

  6. IEEE CEC benchmarks概述

    文章目录 IEEE CEC benchmarks是什么 IEEE CEC2014实例 IEEE CEC benchmarks主要作用 IEEE CEC benchmarks是什么 IEEE CEC,全 ...

  7. (搬运)强化学习的最好benchmarks:最终列表

    Best Benchmarks for Reinforcement Learning: The Ultimate List 来源:https://neptune.ai/blog/best-benchm ...

  8. filecoin lotus benchmarks v26 GeForce GTX 2080 Ti GeForce GTX 1080 Ti

    filecoin lotus benchmarks v26 GeForce GTX 2080 Ti 1,编译bench 2,基准测试 3,GeForce GTX 2080 Ti 测试 1,编译benc ...

  9. Slicer4j运行defects4j(二)--运行benchmarks项目

    slicer4j设置了一系列的项目,用于基准测试.在Slicer4j文件夹下的benchmarks存在很多项目. 主要有JavaSlicer benchmarks , Slicer bechmarks ...

最新文章

  1. 应用基础计算机一级的题目,计算机应用基础一级模拟题
  2. 【BLE】TLSR8258开发记录之15--模拟FATFS
  3. php垂直居中代码_div标签:水平居中和垂直居中的实现(附代码)
  4. asp.net identity的学习记录
  5. java学习(64):类访问私有内部内部类方法
  6. bootstrap基础学习【菜单、按钮、导航】(四)
  7. 优秀!结构最清晰的Yolov3 head和loss实现完全解析
  8. 华为Mate 30 Pro全新配色曝光:“赤茶橘”颜值超高
  9. 2019.08.27BOM的六个子对象(1)
  10. 登录或连接MYSLQ 提示 error 1045 access denied for user 'root@127.0.0.1' 错误
  11. jenkines的工作区目录位置查找
  12. MCGS组态屏CRC16(Modbus)校验计算脚本
  13. 【图像处理】H.264开源解码器评测
  14. php rsa2 pkcs8,关于pkcs8 与 rsa 互转的一个坑
  15. 新媒体推广:一篇文章学会全平台信息流优化 !你get到了吗? | 黎想
  16. CHD-5.3.6集群上sqoop安装
  17. 批量修改ip成自定义网址
  18. 【转载】2019 年,国内博士后的招聘要求和待遇是怎样的?
  19. 安利一下断言利器AssertJ
  20. 道高一尺魔高一丈:iOS破解应用下载中心AppTrackr VS. 苹果

热门文章

  1. 爱奇艺qsv视频下载后怎么转换为3gp格式
  2. lol最克制诺手的英雄_LOL:对线很“无解”的5个英雄,其实他们都有克星,诺手只怕它!...
  3. 灵魂拷问:学Python搞一个云服务器到底能干嘛?
  4. Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系
  5. Jensen–Shannon divergence
  6. TexturePacker命令行拉起参数
  7. 使用面膜过敏现象原因
  8. java 拨通电话_android应用调用系统拨打电话
  9. 外企就很舒服?聊聊我在外企的工作体验
  10. pandas 玩转 Excel 操作总结