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

在一些开源的项目里面,比如现在非常流行的vue都包含一个benchmarks目录。benchmark直译过来就是基准测试。貌似可以做一些功能性能测试。
鉴于有test目录做专门的功能测试,那性能测试到底是以谁为“基准”? 这个文件夹下代码的编写处于开发开源项目的什么阶段? 或者说,我在什么时候必须要用到这个文件夹下的文件? 欢迎所有关于 benchmark的有效讨论。

阅读 6.1k
4 个回答

benchmark与单元测试的目的和阶段都不一样。

单元测试发生在开发阶段,当一个新功能、新程序开发好,或者对原有程序进行了改动之后,需要通过单元测试来验证其正确性。单元测试可能会发生多次,每个大小版本可能都要进行,有时候还会进行多次。

benchmark的目的主要有两种,一是验证性能,另一个是获得一些基准数据,从而可以与本软件的其他版本或其他同类软件进行比较。通常不使用benchmark做正确性验证。

benchmark测试不一定会发生在每个版本的开发期间。有可能仅会在有较大改动的时候才会进行一次benchmark测试。因此频率相对单元测试来说要低很多。

快排、冒泡、桶排都是用来排序的

那么对于一个测试用例,跑 benchmark 就能测出它们之间相对快的那个 (针对该测试用例的量级或其他指标)

一般都是用来和其它框架做对比用的。
目的就是干趴竞争对手。

一般新出来的框架,有竞品的情况下都会有benchmark。
我的理解,就是让你和其它框架做比较。吸引你来用。

好像记得有机构会处理这个目录,用来给测试机构测试的。好像有对应的测试的协议吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题