c++ - 数组和 std::vector 的谷歌基准性能显示数组的 cpu 时间 = 0ns?为什么
问题描述
我用谷歌基准测试了数组和向量的性能
关联:
https://quick-bench.com/q/ixWRn2XG8Q1-OnSFP6GXsadsw_g 您可以通过链接查看代码
结果:
在此处输入图像描述 它表明使用数组几乎没有成本,数组比向量快 2900000000 倍 ### 问题为什么会发生这种情况?
我的代码
#include<vector>
#include <vector>
static void int_use_array(benchmark::State& state) {
for (auto _ : state) {
int a[200][200];
for(int i = 0; i < 200; ++i) {
for(int j = 0; j < 200; ++j) {
a[i][j] = i * j;
}
}
int t = a[2][89];
}
}
BENCHMARK(int_use_array);
static void int_use_vector(benchmark::State& state) {
for (auto _ : state) {
std::vector<std::vector<int> > vec(200, std::vector<int>(200, 0));
for (int i = 0; i < 200; ++i) {
for(int j = 0; j < 200; j++) {
vec[i][j] = i * j;
}
}
int t = vec[2][98];
}
}
BENCHMARK(int_use_vector);
解决方案
推荐阅读
- excel - 在溢出范围旁边展开公式
- neo4j - 如何在 Neo4J 3.3.9 中快速找到节点 - 密码查询优化
- sql - 如何将 ER-D 非规范化为最终用户的报告视图?
- azure - '错误[ERR_STREAM_CANNOT_PIPE]:无法管道,不可读'在saucelabs中运行testcafe测试用例时面临此错误
- android - 如何在android中创建带有工具提示箭头的弹出菜单或弹出窗口
- r - 如何转换数据框,使值在 R 中每列向下移动一行?
- reactjs - 通过 __ref id 查找 apollo 缓存项
- spring-boot - Spring Boot 安全性未按预期工作
- batch-file - 当图标位于快捷方式旁边时如何为快捷方式文件创建图标
- javascript - 如何删除 x 轴刻度标签 Chart.Js