【发布时间】:2012-10-15 21:54:04
【问题描述】:
我对 C++ 编程世界很陌生,很抱歉我的业余问题:
我在主内存(一维数组)中存储了一大块数据,我需要经常访问那里的一些数据,我这样做的方法是:
float *x=new float[20];//array to store x;
int *indlistforx=new int[20];//array to store the index of x;
float *databank=new float[100000000];//a huge array to store data
/... fill data to databank.../
for (int i=0;i<N;i++)//where N is a very large number;
{
/... write index to indlistforx.../
getdatafromdatabank(x, indlistforx, databank);
//Based on the index provided by indlistforx, read data from databank then pass them to x
/...do something with x.../
};
有没有什么高效/快速的方式来访问这些数据(x 的索引没有对齐,不可能对齐)?
提前非常感谢!
【问题讨论】:
-
new float[100000000];?愿你生活在 70 年代... -
我不太明白你的问题。您的代码的某些部分是否运行得太慢?
-
我不明白这个问题。
x是什么? -
@H2CO3:我处理的数据非常庞大,双格式占用大约 20+ GB 内存,这就是我使用 f32 而不是双格式的原因...
-
RAII 通常在正确性和简单性方面具有优势,但在性能方面不应该有任何劣势
标签: c++ performance memory pointers