C ++ 14 RAM的使用

时间:2018-12-04 09:40:58

标签: c++

提交有关SPOJ的解决方案时,我发现我的程序使用了16M的内存,即使我的程序使用了单个整数变量。

这很自然还是我缺少什么?

#include <iostream>

int main(void)
{
    int x;
    while(true)
    {
        std::cin >> x;
        if(x == 42)
        {
            break;
        }
        std::cout << x << "\n";
    }
    return 0;
}

使用的编译器是gcc 6。

Submission Info

1 个答案:

答案 0 :(得分:1)

如果您正在运行调试信息(makefile中的strip命令会将其拉出),并且正在构建优化或未优化的软件,这是很自然的。

尝试将-s和-O添加到GCC命令(如果尚未添加)。这将构建经过优化的可执行文件,并从可执行文件以及其他一些内容中删除符号表。应该会大大减少您的内存使用量。

如果要对内存进行进一步的优化,也可以使用GCC自定义设置堆栈大小,也可以尝试将其减小为KB,从而在此基础上有所作为。

对于未优化/调试加载的可执行文件,总而言之,这很正常。