减少程序的内存使用量

时间:2013-03-17 19:30:37

标签: c++ memory numbers int

我正在尝试解决内存使用限制为0.75 mb的问题 我不能制作大小为100 000的数组,因为它不在0.75 mb之内

我的计划如下:

#include <iostream>   
#include <String>
using namespace std;

void main() {
char temp;
int temp1, num, k, z, val__=0;
cin >> num;
int* value = new int[94000];
short* place = new short[94000];
for (int i = 0; i< num; i++) {
    cin >> temp>>temp;
    if (temp == 'U') {
        cin >> temp >> temp >> place[val__] >> value[val__++];
    }
    else {
        cin >> temp >> temp1;
        for (k = val__-1; k >=0; k-- ) {
            if (place[k]==temp1) {
                cout << value[k]<<endl;
                for (z = k; z < val__; z++) {
                    value[z]=value[z+1];
                    place[z]=place[z+1];
                }
                val__--;
                k = 0;
            }
        }
    }

}
}

如何计算C ++程序的全局内存使用量,以及如何减少使用的内存量? 在一个数组中,我存储从0到1000的数字;在第二个我存储的数字从0到10 ^ 9

2 个答案:

答案 0 :(得分:1)

你有两个数组,假设sizeof(int)是4个字节,sizeof(short)是2个字节 然后你只使用600000字节加一点点进行堆管理。 我认为,其他内存需要堆栈或其他类型的内存。 可能你必须减少堆栈?

答案 1 :(得分:0)

我不确定你要解决的是什么。 但是,如果你需要的内存超过你可以分配的内存, (并假设您不想增加分配的内存大小) 您可能希望将数据保存在数据库或文件中, 只读取处理所需的数组部分 在将更多项目加载到程序运行内存之前,将它们从内存中释放出来。