gpt4 book ai didi

c++ - 数组 vs. vector vs. Boost::arrays

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:26 24 4
gpt4 key购买 nike

我将在每一帧分配和释放许多代表矩阵的动态多维数组。

优先级,即使以错误检查和手动内存管理为代价:

  1. 速度
  2. 内存占用小

考虑到这些优先级,C 风格数组是最佳选择吗?我知道这是一个经常被问到的问题,但我无法找到适合我的情况的明确答案。

最佳答案

如果您可以描述一组这些数组所需的最大内存量,这些数组将用于任何特定的“帧”(无论是什么),并且如果您一次只处理一个帧(换句话说,您将在一组数组上执行工作,然后在对另一组数组执行另一轮工作之前转储所有这些数组)然后您可能会通过从一个数组中分配数组来获得最佳性能大小适合最大可能工作集的静态内存块。

然后你的数组分配可以是一个简单的池分配器,它从 block 的前面为数组分配内存,并将 block 指针调整到刚好通过该分配,以便为下一个数组分配做好准备。完成对那组数组的处理后,可以通过“清理池”释放所有内容 - 只需将 block 指针重置为静态内存池的开头即可。

当然,由于您没有详细说明必须如何完成工作,因此这种技术可能根本不适用(这可能就是您尚未找到明确答案的原因 - 这样的答案取决于您正在执行的工作的具体特征)。

关于c++ - 数组 vs. vector vs. Boost::arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com