加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C 14 RAM使用情况

发布时间:2020-12-16 07:24:16 所属栏目:百科 来源:网络整理
导读:在SPOJ上提交解决方案时,我发现我的程序使用了16M的内存,即使我的程序使用了一个整数变量. 这是自然的还是我错过了什么? #include iostreamint main(void){ int x; while(true) { std::cin x; if(x == 42) { break; } std::cout x "n"; } return 0;} 使用
在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.

解决方法

如果你运行调试信息(makefile中的strip命令会将其拉出来),并且你正在构建优化或非优化,这是相当自然的.

尝试将-s和-O添加到GCC命令(如果尚未添加).这将构建您的可执行文件优化到一个不错的程度,并从可执行文件和其他一些东西中删除符号表.应该显着减少你的内存使用量.

如果你想进一步优化你的内存,你也可以使用GCC自定义堆栈大小,你可以尝试将它减少到KB,以便在那里做一些基础.

总而言之,对于未经优化/调试加载的可执行文件,这是相当正常的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读