基准测试:
通过运行一个或一组程序或者其他操作行为来评估一个对象的相对性能,对大数据的benchmark则是一种通过压力测试来测试代码性能的方法,目的是诊断性能问题和进行调优,最大化系统的吞吐量。
主要组成:
1.数据集(相当于各种商品)
包括可用二维表结构表示的传统数据模型(结构化数据:可用于电商交易、财务系统等的处理)、类似XML、HTML之类,数据结构和内容混杂在一起的半结构化数据(用于邮件系统、Web搜索引擎储蓄等等的处理),和各种文档、图片、视频和音频的非结构化数据(用于视频网站、图片相册等等的处理)。
2.工作负载(相当于销售方式)
1)密集计算类型:CPU密集型计算、IO密集型计算、网络密集型计算;
2)计算范式:SQL、批处理、流计算、图计算、机器学习;
3)计算延迟:在线计算、离线计算、实时计算;
4)应用领域:搜索引擎、社交网络、电子商务、地理位置、媒体、游戏
3.度量指标(相当于盈利指标)
从架构角度度量:浮点型操作密度、整数型操作密度、指令中断、cache命中率、TLB命中;
从Spark系统执行时间和吞吐的角度度量:Job作业执行时间、Job吞吐量、Stage执行时间、Stage吞吐量、Task执行时间、Task吞吐量;
从Spark系统资源利用率的角度度量:CPU在指定时间段的利用率、内存在指定时间段的利用率、磁盘在指定时间段的利用率、网络带宽在指定时间段的利用率;
从扩展性的角度度量:数据量扩展、集群节点数据扩展(scale out)、单机性能扩展(scale up)。
常见工具:
1.Google提供的完全免费开源的c++ Benchmark库。
2.Geekbench、3Dmark、PCmark、Antutu等评估电脑、手机硬件性能和算力软件。
3.Golang标准库里的Benchmark基准测试函数。
4.JMH,全称 Java Microbenchmark Harness (微基准测试框架),是专门用于Java代码微基准测试的一套测试工具API,是由 OpenJDK/Oracle 官方发布的工具。
----------------------------------
参考链接:https://blog.youkuaiyun.com/Th7me/article/details/124672036
参考链接:https://blog.youkuaiyun.com/u010666884/article/details/52355511
参考链接:https://blog.youkuaiyun.com/weixin_34216036/article/details/93345953