virtual memory exhausted: Cannot allocate memory

半腔热情 提交于 2019-12-30 17:36:47

问题


My compilation fails on ubuntu 12.10 with 300mb memory available (750mb total, 350mb to MySQL), 1.5ghz, I am trying to rework wt's basic hello world file into a simple ajax page. I'm pretty sure it's not a memory issue at heart since I was able to compile the original hello.C file with g++ -O3 -o hello hello.C -lwtfcgi -lwt -lboost_signals.

I'm sure I'm screwing up the c++ since I ripped out the guts of HelloApplication::HelloApplication(const WEnvironment& env) : WApplication(env) and put in the example from the Wt::Json example

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
}

I'm new to c++, so I have almost no idea what I'm doing. All I can do is execute the simplest of c++ files.

Here's the original source to the hello world file.

Here's where I got the json sample from.

** Repercussions**

Wow, my respect level just went through the roof for the power of c++.

This has totally destroyed my VPS. I can't restart. I can't even reinstall my distro.

When I finally go into production, I think I'm going to set up a totally different dev system to prevent something like this killing my production system.


回答1:


Since your compilation fails with out of memory, there's probably not enough memory to compile your program. This can't possibly be because of 'a session management problem' as suggested in the accepted answer. Is mysql eating more than it should? Is 300MB enough to compile C++ anyway?

Serving JSon (like for a REST interface) in Wt is done through a WResource bound to the WServer object. WApplication is for an interactive user interface.




回答2:


As a potential quick fix: You can reduce the memory usage by doing

make -j 1

which tells the build tool to use only one CPU. Worked for me.



来源:https://stackoverflow.com/questions/15193585/virtual-memory-exhausted-cannot-allocate-memory

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!