减少分配 C++ 2D 向量的时间

问题描述 投票:0回答:1

问题很简单。对于 C++ 中的这一行,

std::vector<std::vector<double>> x_vec(10, std::vector<double>(2));

我创建一个大小为 (10, 2) 的向量来赋值。

我发现这个单一操作导致我大约 1 微秒。

我有一个函数,其中有几个可以创建多个向量。单一功能评估的时间对于我的程序至关重要。

我发现创建这个向量比为其赋值更昂贵。

如何减少这方面的时间?我没有义务矢量。数组等对于我的情况同样适用。

c++ optimization vector profiling dynamic-memory-allocation
1个回答
0
投票

如果您需要的内存大小如您所显示的行所示提前已知,那么在堆栈上分配固定大小的双精度数组比让 std::vector 在堆上分配会更快。但是,如果您不在每次调用函数时一遍又一遍地分配内存,而是重用已分配的内存并用新值覆盖它,则可以充分利用函数的性能。

© www.soinside.com 2019 - 2024. All rights reserved.