2013-03-04 1 views
8

우분투 12.10에서 사용 가능한 300MB 메모리 (총 750MB, MySQL 350MB), 1.5ghz에서 컴파일이 실패합니다. 간단한 hello world 파일을 간단한 ajax 페이지로 다시 작성하려고합니다. 나는 원래 hello.C 파일을 g++ -O3 -o hello hello.C -lwtfcgi -lwt -lboost_signals으로 컴파일 할 수 있었기 때문에 마음에 메모리 문제가 아닌 것으로 확신한다.가상 메모리가 부족합니다. 메모리를 할당 할 수 없습니다.

은 그래서, 내가 HelloApplication::HelloApplication(const WEnvironment& env) : WApplication(env)의 내장을 찢어하고

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++에 새로운 해요 중량 : JSON 예로부터 예에 넣어 이후는 C++를 속이고있어 확신 내가하는 일을 거의 모른다. 내가 할 수있는 일은 가장 단순한 C++ 파일을 실행하는 것이다.

여기에 원래 source to the hello world file이 있습니다.

여기가 the json sample from입니다.

** 반향은 **

와우, 존경의 수준은 C의 힘 ++의 지붕을 통해 갔다.

이것은 내 VPS를 완전히 파괴했습니다. 다시 시작할 수 없습니다. 나는 심지어 내 배포판을 다시 설치할 수 없습니다.

마침내 생산에 들어갈 때, 나는이 생산 시스템을 죽이는 것을 막기 위해 완전히 다른 개발자 시스템을 설치할 것이라고 생각합니다.

+0

왜 누군가가 당신을 낙심 시켰는지 모르는 것이 좋은 질문 인 것 같습니다. 이걸로 행운을 빕니다 ... +1. –

+4

먼저 메모리가 누출되는지 확인하기 위해 valgrind에서 프로그램을 실행합니다. – Voo

+0

@Voo 새 도구를 사용해 주셔서 감사합니다! (new to me) –

답변

0

메모리 부족으로 컴파일이 실패하므로 프로그램을 컴파일 할 메모리가 부족할 수 있습니다. 이것은 수용된 대답에서 제안 된 '세션 관리 문제'때문일 수는 없습니다. mysql이 먹는 것보다 더 많이 먹는가? 300MB는 C++를 컴파일하는데 충분합니까?

Wt에서 JSON (REST 인터페이스처럼) 처리는 WServer 객체에 바인딩 된 WResource를 통해 수행됩니다. WApplication은 대화 형 사용자 인터페이스 용입니다.

+0

코드의 작은 부분을 300MB로 컴파일 할 수 없다면 그 코드는 무거운 코드 집합입니다! 나는 훨씬 더 복잡한 websocket ++ 또는 java-websocket 서버를 MB의 몇 10s에 대해 실행할 수 있습니다. 위의 모든 작업은 단순히 일부 json을 수신하여 터미널에 출력합니다. –