1. ホーム
  2. c++

[解決済み] 仮想メモリを使い果たしました。メモリを割り当てられない

2022-01-31 04:59:55

質問内容

私はwtの基本的なhello worldファイルを単純なajaxページに作り変えようとしています。 私は、元のhello.Cファイルを次のようにコンパイルすることができたので、私はそれが本質的にメモリの問題ではないことをかなり確信しています。 g++ -O3 -o hello hello.C -lwtfcgi -lwt -lboost_signals .

の根幹を切り裂いたので、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は完全に破壊されました。 再起動できない。 ディストロの再インストールもできない。

最終的に本番に入るときは、このようなことで本番システムが死ぬのを防ぐために、全く別の開発システムをセットアップしようと思います。

解決方法は?

メモリ不足でコンパイルに失敗しているので、おそらくプログラムをコンパイルするのに十分なメモリがないのでしょう。これは、回答で提案されたような「セッション管理の問題」が原因であることはあり得ません。mysqlが必要以上に食っているのでしょうか?C++をコンパイルするには300MBあれば十分なのでしょうか?

WtでのJSonの提供は(RESTインターフェイスのように)WServerオブジェクトにバインドされたWResourceを通して行われます。WApplicationは、インタラクティブなユーザーインターフェイスのためのものです。