虚拟内存耗尽:无法分配内存
virtual memory exhausted: Cannot allocate memory
我的编译在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。我不能重新启动。我甚至不能重新安装我的发行版。
当我最终进入生产时,我想我要建立一个完全不同的开发系统,以防止类似的事情破坏我的生产系统。
作为一个潜在的快速修复:您可以通过执行
来减少内存使用make -j 1
告诉构建工具只使用一个CPU。
只需添加交换文件即可解决此问题!
//创建一个1gb的交换文件
- dd if=/dev/0 of=/swapfile1 bs=1024 count=1048576
- chown root:root/swapfile1
- chmod 0600/swapfile1
- mkswap/swapfile1
- swapon/swapfile1
//编辑文件
- vi挂载
//在文件末尾添加以下行
- /swapfile1无swap sw 0 0
//检查交换是否准备好
- 自由- m
由于内存不足导致编译失败,可能没有足够的内存来编译程序。这不可能是因为"会话管理问题",正如在接受的答案中所建议的那样。mysql吃的比它应该吃的多吗?300MB是否足以编译c++ ?
在Wt中服务JSon(像REST接口)是通过绑定到WServer对象的WResource来完成的。WApplication是一个交互式用户界面。
试着让-j也为我的实时应用程序工作
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- 给定一个指向堆分配内存的指针,智能指针实现如何为其找到合适的释放函数?
- 如果 const 不分配内存,为什么我可以获取 const 的地址?
- 在函数中分配内存时出现问题
- 如何为 std::vector 分配内存,然后稍后为某些元素调用构造函数?
- constexpr new 如何分配内存?
- 在构造函数中分配内存失败是如何冒泡的
- LLVM 传递以在特定地址分配内存
- CudaMalloc 在分配内存时失败
- 为什么它在不分配内存的情况下工作正常
- 为什么在正确解除分配内存时出现内存泄漏?
- 如何通过 malloc 为队列数组分配内存?
- vector是否为std::移动的对象连续分配内存
- 删除类成员的动态分配内存的最佳方法是什么
- 唯一指针是否在堆或堆栈上分配内存?
- 如果不分配内存,我如何能够为变量创建和分配值?
- std::initializer_list 堆是否分配内存?
- 如何按顺序或在指定的地址分配内存?
- 是否可以使用 malloc 为类对象分配内存?
- 迭代器是否分配内存(如指针)?