14

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

我确定我把 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。我无法重新启动。我什至无法重新安装我的发行版。

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

4

3 回答 3

8

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

make -j 1

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

于 2019-01-17T10:44:25.020 回答
1

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

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

于 2013-03-06T14:07:26.730 回答
1

只需添加交换文件即可解决此问题!

// 创建一个 1 GB 的交换文件

  1. dd if=/dev/zero of=/swapfile1 bs=1024 count=1048576
  2. chown root:root /swapfile1
  3. chmod 0600 /swapfile1
  4. mkswap /swapfile1
  5. 交换 /swapfile1

// 编辑 fstab 文件

  1. vi /etc/fstab

//在文件末尾追加以下行

  1. /swapfile1 无交换 sw 0 0

// 检查交换是否准备好

  1. 免费-m
于 2021-07-16T15:00:31.770 回答