2013-03-04 21 views
8

ubuntu 12.10で300メガバイトのメモリが利用可能でコンパイルに失敗しました(合計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はそれ以上のものを食べていますか?とにかくC++をコンパイルするのに十分な300MBですか?

WtのJSonの処理(RESTインターフェイスの場合と同じように)は、WServerオブジェクトにバインドされたWResourceによって行われます。 WApplicationは、対話型ユーザーインターフェイス用です。

+0

その小さなコードセグメントを300MBでコンパイルできない場合、これは1セットの重いコードセットです!私ははるかに複雑なwebsocket ++またはjava-websocketサーバーを数十台のmbで実行できます。上記のすべては、単純にいくつかのjsonを受け取り、その部分を端末に出力しただけです。 –

関連する問題