14

私のコンパイルは、300mbのメモリが利用可能なubuntu 12.10(合計750mb、MySQLに対して350mb)、1.5ghzで失敗します。wtの基本的なhelloworldファイルを単純なajaxページに作り直そうとしています。元のhello.Cファイルを。でコンパイルできたので、これは本質的にメモリの問題ではないと確信していますg++ -O3 -o hello hello.C -lwtfcgi -lwt -lboost_signals

HelloApplication::HelloApplication(const WEnvironment& env) : WApplication(env)Wt :: Jsonの例の内臓を取り除いて例を入れたので、C++を台無しにしていると確信しています

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++ファイルを実行することだけです。

これがhelloworldファイルの元のソースです。

ここからjsonサンプルを入手しました

**影響**

うわー、私の尊敬のレベルはちょうどc++の力のために屋根を通り抜けました。

これは私のVPSを完全に破壊しました。再起動できません。ディストロを再インストールすることすらできません。

最終的に本番環境に入るときは、このようなものが本番システムを強制終了するのを防ぐために、まったく異なる開発システムをセットアップするつもりだと思います。

4

3 に答える 3

8

潜在的なクイックフィックスとして:次のことを行うことでメモリ使用量を減らすことができます

make -j 1

これは、ビルドツールに1つのCPUのみを使用するように指示します。私のために働いた。

于 2019-01-17T10:44:25.020 に答える
1

コンパイルはメモリ不足で失敗するため、プログラムをコンパイルするのに十分なメモリがない可能性があります。これは、受け入れられた回答で示唆されているように、「セッション管理の問題」が原因である可能性はありません。mysqlは必要以上に食べていますか?とにかくC++をコンパイルするには300MBで十分ですか?

WtでのJSonの提供(RESTインターフェースの場合と同様)は、WServerオブジェクトにバインドされたWResourceを介して行われます。WApplicationは、インタラクティブなユーザーインターフェイス用です。

于 2013-03-06T14:07:26.730 に答える
1

この問題を解決するには、スワップファイルを追加するだけです。

//スワップファイルを1GB作成します

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

//fstabファイルを編集します

  1. vi / etc / fstab

//ファイルの最後に次の行を追加します

  1. /swapfile1なしswapsw0 0

//スワップの準備ができているかどうかを確認します

  1. 無料-m
于 2021-07-16T15:00:31.770 に答える