虚拟内存耗尽:无法分配内存

新手上路,请多包涵

我在 ubuntu 12.10 上编译失败,可用内存为 300mb(总共 750mb,MySQL 为 350mb),1.5ghz,我正在尝试将 wt 的基本 hello world 文件重新编写为一个简单的 ajax 页面。我很确定这不是内存问题,因为我能够使用 g++ -O3 -o hello hello.C -lwtfcgi -lwt -lboost_signals 编译原始的 hello.C 文件。

我确定我把 c++ 搞砸了,因为我撕掉了 `HelloApplication::HelloApplication(const WEnvironment& env)
WApplication(env)` 的胆量并放入了 Wt::Json 示例中的示例
HelloApplication::HelloApplication(const WEnvironment& env)
  : WApplication(env)
{
    Json::Object result;
    Json::parse("{ "
             "  \"a\": \"That's great\", "
             "  \"b\": true "
             "}",
             result);

    std::cerr << "Size: " << result.size(); << std::endl; // Size: 2
    WString s = result.get("a");
    bool b = result.get("b");
    std::cerr << "a: " << s << ", b: " << b << std::endl; // a: That's great, b: true
}

我是 C++ 新手,所以我几乎不知道自己在做什么。我所能做的就是执行最简单的 c++ 文件。

是 hello world 文件的原始来源

这是我从中 获取 json 样本 的地方。

\*\* 影响**

哇,我对 c++ 的尊重程度刚刚达到顶峰。

这完全摧毁了我的 VPS。我无法重新启动。我什至无法重新安装我的发行版。

当我最终投入生产时,我想我将建立一个完全不同的开发系统,以防止这样的事情扼杀我的生产系统。

原文由 user1382306 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 659
2 个回答

由于您的编译因内存不足而失败,因此可能没有足够的内存来编译您的程序。这不可能是因为接受的答案中建议的“会话管理问题”。 mysql吃的比它应该吃的多吗? 300MB 足以编译 C++ 吗?

在 Wt 中服务 JSon(如 REST 接口)是通过绑定到 WServer 对象的 WResource 完成的。 WApplication 用于交互式用户界面。

原文由 user52875 发布,翻译遵循 CC BY-SA 3.0 许可协议

作为一个潜在的快速解决方案:您可以通过以下方式减少内存使用量

make -j 1

它告诉构建工具只使用一个 CPU。为我工作。

原文由 Rainer Glüge 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题