当前位置: 首页 > wzjs >正文

网站开发的毕业设计论文框架深圳海外医疗网站建设

网站开发的毕业设计论文框架,深圳海外医疗网站建设,我的世界充钱网站怎么做,网站开发前台实训Google Benchmark性能测试 Google Benchmark 是一个用于 C 的微基准测试框架,专为测量小块代码的性能而设计。它提供了一种简单而强大的方式来编写、运行和分析基准测试,帮助开发人员识别性能瓶颈并优化代码。本教程将从安装和基本用法开始,…

Google Benchmark性能测试

Google Benchmark 是一个用于 C++ 的微基准测试框架,专为测量小块代码的性能而设计。它提供了一种简单而强大的方式来编写、运行和分析基准测试,帮助开发人员识别性能瓶颈并优化代码。本教程将从安装和基本用法开始,逐步深入到高级功能,并通过 C++ 示例演示如何结合测试实践。


1. 安装 Google Benchmark

在 Ubuntu 上安装 Google Benchmark 非常简单。以下是安装步骤:

  1. 更新软件包列表

    sudo apt-get update
    
  2. 安装 Google Benchmark

    sudo apt-get install libbenchmark-dev
    
  3. 验证安装
    安装完成后,你可以通过编译一个简单的基准测试程序来验证安装是否成功。


2. 基本用法

Google Benchmark 的基本用法是定义一个基准测试函数,并使用 BENCHMARK 宏注册它。以下是一个简单的示例:

示例 1:测量函数执行时间

代码
#include <benchmark/benchmark.h>
#include <chrono>
#include <thread>void BM_Sleep(benchmark::State& state) {for (auto _ : state) {std::this_thread::sleep_for(std::chrono::milliseconds(100));}
}BENCHMARK(BM_Sleep);BENCHMARK_MAIN();
编译和运行
  1. 编译

    g++ -std=c++11 -O2 -o benchmark_example benchmark_example.cpp -lbenchmark -lpthread
    
    • -lbenchmark 链接 Google Benchmark 库。
    • -lpthread 链接 pthread 库(Google Benchmark 依赖)。
  2. 运行

    ./benchmark_example
    
输出分析

运行后,你将看到类似以下的输出:

2023-10-01 12:00:00
Running ./benchmark_example
Run on (8 X 4200 MHz CPU s)
CPU Caches:L1 Data 32 KiB (x4)L1 Instruction 32 KiB (x4)L2 Unified 256 KiB (x4)L3 Unified 8192 KiB (x1)
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
---------------------------------------------------------
Benchmark               Time             CPU   Iterations
---------------------------------------------------------
BM_Sleep         100000000 ns    100000000 ns           7
  • Time:每次迭代的平均时间。
  • CPU:每次迭代的 CPU 时间。
  • Iterations:基准测试运行的迭代次数。

示例 2:测量不同参数下的性能

Google Benchmark 允许你通过 RangeArgs 指定参数,测试不同输入下的性能。

代码
#include <benchmark/benchmark.h>
#include <vector>void BM_VectorPushBack(benchmark::State& state) {for (auto _ : state) {std::vector<int> v;for (int i = 0; i < state.range(0); ++i) {v.push_back(i);}}
}BENCHMARK(BM_VectorPushBack)->Range(8, 8<<10);BENCHMARK_MAIN();
编译和运行
  1. 编译

    g++ -std=c++11 -O2 -o benchmark_range benchmark_range.cpp -lbenchmark -lpthread
    
  2. 运行

    ./benchmark_range
    
输出分析

输出将显示不同 vector 大小下的性能:

---------------------------------------------------------
Benchmark               Time             CPU   Iterations
---------------------------------------------------------
BM_VectorPushBack/8          10 ns          10 ns    10000000
BM_VectorPushBack/64         80 ns          80 ns     1000000
BM_VectorPushBack/512       640 ns         640 ns      100000
BM_VectorPushBack/4096     5120 ns        5120 ns       10000
BM_VectorPushBack/32768   40960 ns       40960 ns        1000

这表明随着 vector 大小的增加,push_back 操作的耗时也相应增加。


3. 高级功能

Google Benchmark 还提供了一些高级功能,帮助你更精细地控制基准测试。

3.1 自定义计时

你可以使用 DoNotOptimizeClobberMemory 来防止编译器优化掉你的代码。

代码
#include <benchmark/benchmark.h>void BM_CustomTiming(benchmark::State& state) {for (auto _ : state) {int result = 0;for (int i = 0; i < 1000; ++i) {result += i;}benchmark::DoNotOptimize(result);benchmark::ClobberMemory();}
}BENCHMARK(BM_CustomTiming);BENCHMARK_MAIN();
  • DoNotOptimize:防止编译器优化掉 result
  • ClobberMemory:确保内存操作不被优化。

3.2 测量内存使用

Google Benchmark 允许你测量内存使用情况。

代码
#include <benchmark/benchmark.h>
#include <vector>void BM_MemoryUsage(benchmark::State& state) {for (auto _ : state) {std::vector<int> v(state.range(0), 0);benchmark::DoNotOptimize(v.data());}state.SetBytesProcessed(state.iterations() * state.range(0) * sizeof(int));
}BENCHMARK(BM_MemoryUsage)->Range(8, 8<<10);BENCHMARK_MAIN();
  • SetBytesProcessed:设置每次迭代处理的字节数,用于计算吞吐量。

3.3 多线程基准测试

你可以使用 Threads 指定线程数,测试多线程环境下的性能。

代码
#include <benchmark/benchmark.h>
#include <atomic>std::atomic<int> counter(0);void BM_AtomicIncrement(benchmark::State& state) {for (auto _ : state) {counter++;}
}BENCHMARK(BM_AtomicIncrement)->Threads(4);BENCHMARK_MAIN();
  • Threads(4):在 4 个线程中运行基准测试。

4. 结合测试实践

在实际开发中,基准测试应与单元测试和性能分析工具结合使用,以确保代码的正确性和高效性。

4.1 与单元测试集成

你可以在 CI/CD 管道中运行基准测试,监控性能变化。

4.2 与性能分析工具结合

使用 perfValgrind 等工具,深入分析基准测试结果,定位瓶颈。



文章转载自:

http://KLW0NAqn.dbsch.cn
http://FGDLEPkI.dbsch.cn
http://yjpaGQU6.dbsch.cn
http://LE0kP0v4.dbsch.cn
http://OS7dUFGz.dbsch.cn
http://YXDb8fD7.dbsch.cn
http://k32VsbxG.dbsch.cn
http://sEfHYoIt.dbsch.cn
http://qcwXkJU7.dbsch.cn
http://FsJE4TO5.dbsch.cn
http://VcbRmRhj.dbsch.cn
http://vQegDmbW.dbsch.cn
http://FrlOe5xx.dbsch.cn
http://Ix7ftUrt.dbsch.cn
http://XKVdkwy0.dbsch.cn
http://GCSPopmv.dbsch.cn
http://DN8lcQ9V.dbsch.cn
http://fnpnyRdr.dbsch.cn
http://iRaDG87z.dbsch.cn
http://aR4OWfPw.dbsch.cn
http://JlfswYzh.dbsch.cn
http://ypRSetEC.dbsch.cn
http://LqXBCDAC.dbsch.cn
http://MCDI9cFa.dbsch.cn
http://xypUjC7u.dbsch.cn
http://2hn2C3vs.dbsch.cn
http://v9tHsbNJ.dbsch.cn
http://VCQgVth3.dbsch.cn
http://QXVKxA4b.dbsch.cn
http://rfPUlbHB.dbsch.cn
http://www.dtcms.com/wzjs/700733.html

相关文章:

  • 建设网站是什么外贸广告推广
  • 怎么样上传网站资料建设网站证书不受信任
  • 聊城网站建设哪个好怎样做网站编辑
  • access数据库创建网站手机app官方安装下载
  • 网站个人备案需要什么资料手机管理网站模板下载
  • 湘潭做网站 就问磐石网络擼擼擼做最好的导航网站
  • 做兼职的网站贴吧北京南站官网
  • 网站添加wordpress博客比较好的外贸公司
  • 一个网站备案两个域名怎么才能注册网站
  • 西安有几家做网站metro风格网站模板
  • 网站建设维护什么意思专门开发小程序的公司
  • 做ui要上那些网站阿里云域名注册续费
  • 连云港北京网站建设友链交易平台
  • 网站后端开发软件中国建设银行纪念币预约网站
  • 长沙设计网站建设申请一个网站需要怎么做
  • 网站开发项目需求书cpa项目推广联盟
  • 怎样在华为云服务器里建设网站免费手机小说网站建设
  • 你做的网站可视区域多少整形网站开发
  • 网站规划与建设规划书做网站的外包公司可以进吗
  • 南宫网站建设页面设计软件教程
  • 电商平台正在建设中网站页面提示网站建设的话术
  • 杂志社网站建设意义个人网站 备案备注
  • 宿州企业官方网站建设融通资源开发公司
  • 网页和网站的概念大连做环评网站
  • 广州做网站多秦皇岛十大必去景点
  • 网站后台地址一般是视频制作学习
  • 网站建设方案总结评语seo优化的技巧
  • 徐州经济开发区网站黄江做网站
  • 网站logo设计制作网站建设公司发展
  • 百度上可以做中英文网站吗杭州本地网站