在初始化庞大的数据结构时,我应该在内存管理点少的float*
上选择QVector
内存关键应用程序吗?
特别是,我需要在循环中写入多次迭代的结构。 operator[]
的{{1}}访问者会进行写时复制。是否更多地使用QVector
并访问其元素?
答案 0 :(得分:2)
我宁愿使用QVector
或std::vector
。由于QVector
将浮点数存储在连续的内存区域中,因此它的执行速度几乎与float
数组一样快。写时复制添加检查,但我认为它不相关,但如果重要std::vector
不做COW。
使用QVector
,benchark。如果它太慢,那么只能尝试优化。
答案 1 :(得分:0)
使用Windows PSAPI API分析内存分配,可能会发现QVector和float *之间的内存消耗存在可忽略的差异。