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)上查看了有关该类及其方法的更多详细信息,但还没有提出任何有效的东西。
我要求任何回复的人尽可能详细地说明如何处理内存清理。一个例子将不胜感激,在此先感谢!