2025年Benchmark学习笔记

Benchmark学习笔记目录 Benchmark 简介 为什么要进行基准测试 Benchmark 的类型和方法 微基准测试 模拟 回放 方法 实例 一个简单的代码基准测试示例 了解到的进行基准测试的个别工具 总结 参考 Benchmark 简介 Benchmark 基准测试 是用于衡量计算机 系统

大家好,我是讯享网,很高兴认识大家。

目录

Benchmark简介

为什么要进行基准测试

Benchmark的类型和方法

微基准测试

模拟

回放

方法

实例

一个简单的代码基准测试示例

了解到的进行基准测试的个别工具

总结

参考


Benchmark简介

       Benchmark(基准测试)是用于衡量计算机、系统、软件或硬件等性能的标准化测试工具或测试方法。

       进行基准测试,我们需要明确测试目标、选择合适的测试工具测试环境、根据测试目标选择合适的测试指标,运行测试并收集数据,最后分析测试结果做出评估。在做基准测试分析时,也要特别明确限制因素和思考可能的干扰。

       Benchmark可以应用在多个领域,比如计算机硬件(处理器、显卡、存储设备)、操作系统、数据库系统、网络设备等。常见的基准测试工具包括Geekbench、PassMark、SPEC等,这些工具提供了一系列标准化的测试项目,可以用来评估设备的性能。

为什么要进行基准测试

       “在可控的状态下做性能基准测试,对不同的选择做比较,让我们可以在生产环境遇到性能极限之前对性能极限做了解”,进行基准测试,有以下但不仅限于以下意义:

系统设计:对比不同的系统、系统组件或应用程序,了解可选项间的性价比,有利于帮助进行采购决策。

调优:测试可调参数及配置选项,以确定哪些值得针对生产工作负载做进一步研究。


讯享网

开发:产品开发过程中,通过基准测试将产品推至极限,为提高产品性能定位开发努力的重点。

容量规划:为容量规划确定系统和应用程序的极限。

排错:确认组件是否仍以最高的性能运行。

Benchmark的类型和方法

以下是基准测试类型的关系图:

微基准测试

微基准测试利用人造的工作负载对某类特定的操作做测试,它的优势是简单。比如,执行一种类型文件系统I/O、数据库查询、CPU指令,或者系统调用。由于微基准测试是特意人为的,不会轻易地与真实工作负载模拟相混淆,所以在不同系统上执行微基准测试一般都很快。需要注意的是,能用的微基准测试结果,要能够映射目标工作负载。

模拟

有时也称宏基准测试,基于生产环境的工作负载特征来决定所要模拟的特征,模拟客户应用程序的工作负载。模拟所生成的结果与客户在真实世界所执行的工作负载是相似的,相较于微基准测试,模拟能覆盖复杂系统相互作用的影响。但模拟忽略了变化,因为客户的使用模拟会因时间的推移而变化,所以要求模拟也随之更新和调整以保证两者的关联性。

回放

试图回放目标的跟踪日志,用真实捕捉到的客户机的操作来测试性能。这相当于在生产环境做测试,但当服务器的特征和所响应的延时发生变化时,所捕捉到的客户工作负载很可能不能反映出这些差异,与模拟客户工作负载相比,可能并不会更好。

方法

好的基准测试具有以下特质:

实例

一个简单的代码基准测试示例

以下代码使用了Google的C++基准测试框架(Google Benchmark),Google Benchmark是一个用于C的基准测试框架,它提供了简单的API和丰富的功能,可以用于评估函数或代码段的性能。

#include <benchmark/benchmark.h>//引入Google Benchmark库的头文件,提供进行基准测试所需的函数和类。 static void BM_SomeFunction(benchmark::State& state) {//用于基准测试的静态函数,接受一个benchmark::State对象作为参数 // Perform setup here for (auto _ : state) {//基准测试循环,在基准测试期间多次运行,以便测量执行时间 // This code gets timed SomeFunction(); } } // Register the function as a benchmark BENCHMARK(BM_SomeFunction); // Run the benchmark BENCHMARK_MAIN();//定义main函数并运行所有已注册的基准测试

讯享网

了解到的进行基准测试的个别工具

sysbench:是一个基于LuaJIT的可脚本多线程基准测试工具。它最常用于数据库基准测试,但也可用于创建不涉及数据库服务器的任意复杂工作负载。

Geekbench:是一个跨平台的基准测试工具,可用于评估处理器和内存的性能。它提供了单核和多核性能测试,可以在不同操作系统上运行。它的优点是易于使用,提供了直观的性能评估结果。

Bonnie:是一个用于进行文件系统和磁盘性能测试的工具。它的主要功能是评估文件系统的读写性能、随机访问性能以及文件创建和删除的性能。通过对文件系统和磁盘的性能进行测试,Bonnie可以帮助用户了解系统的磁盘I/O性能,从而进行性能优化或选择合适的存储方案。

总结

通过这次的自主学习,我了解了benchmark的概念、核心要点、个别工具,对benchmark有了初步认识。其次,我认识到了基准测试的重要和复杂,通过阅读《性能之巅——洞悉系统、企业与云计算》,我基本了解了执行基准测试的流程和“基准测试之罪”。

参考

[1]Gregg, B. (2013). Systems Performance: Enterprise and the Cloud. Prentice Hall.

[2]实例取自github网站:https://github.com/google/benchmark

[3]开源工具Sysbench:简单而强大的基准测试开源工具sysbench详解 - 知乎 (zhihu.com)

[4]Bonnie:测试工具Bonnie++的使用-CSDN博客

小讯
上一篇 2025-03-24 17:56
下一篇 2025-03-15 23:29

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/127913.html