2013 年 3 月 27 日更新
私はメモリをリークしていないように見えます.F5が押されるか、新しいユーザーが接続するたびにWTが永続的なセッションを維持していないだけです. 基本的に、古いセッションは削除され、F5 キーを押すか、新しいユーザーが別のマシンから接続するたびに新しいセッションが作成されます。セッションを永続的にすることについて言及しているドキュメントの一部を読んだので、ユーザーがページをリロードしたり、別のユーザーが接続したりすると、すべて同じコンテンツが表示されます。しかし、私はまだそれを機能させることができませんでした。関数呼び出しかwt_config.xmlファイルの設定だと思います。他に進展があれば更新します。
元の投稿
だから私の質問は、どのように WT でメモリをクリーンアップして、ユーザーがページで F5 を押すたびにタスク マネージャーでメモリ使用量が同じになるようにするかということです。
わかりましたので、私は WT 発音 (機知に富んだ) で作業しています。ユーザーがページで F5 キーを押してページを更新するたびに、サーバー アプリケーションがより多くのメモリを消費することに気付きました。これは、メモリ リークしているように見えますが、 WTの最も基本的なアプリケーションと同じプロセス...
そこで、私が見つけることができる最も基本的な WT アプリに戻りました。Hello アプリケーションのコードと実際のサンプルは、ここ ( http://www.webtoolkit.eu/wt/examples/ ) にあります。プロジェクトを個人的に構築していません。
マシンで例を実行し、ページで F5 キーを押すと、タスク マネージャーのメモリが増加しました。
私の可能性が高いのは、以下のこの関数です。
WApplication *createApplication(const WEnvironment& env)
{
/*
* You could read information from the environment to decide whether
* the user has permission to start a new application
*/
return new HelloApplication(env);
}
F5 が押されるたびに呼び出され、WApplication を継承する HelloApplication の新しいインスタンスを作成します。
うまくいかなかった状況を改善しようとしたいくつかのことは次のとおりです。 HelloApplication の 2 つのポインターを保持して、新しいポインターが割り当てられるたびに古いポインターを削除できるようにします。quit() 関数を呼び出し、ポインターを削除します。quit() 関数を呼び出すだけです。クラスとそのメソッドの詳細については、WT ドキュメント サイト ( http://www.webtoolkit.eu/wt/doc/reference/html/index.html ) も調べましたが、思いつきませんでした。うまくいったもの。
回答者の方は、メモリのクリーンアップの処理方法をできるだけ詳しく教えてください。例をいただければ幸いです。事前に感謝します。