Wt: 1.5 GB用于运行论坛(即使只有一个用户连接).这正常吗?

Wt: 1.5 GB used to run a forum (even with a single user connected). Is it normal?

本文关键字:连接 用户 有一个 常吗 GB 用于 论坛 运行 Wt      更新时间:2023-10-16

正如标题所说,我正在使用Wt建立一个论坛。它应该是一个更大的项目的一部分(同时,它给了我更好地学习Wt的机会,在进入项目最难的部分之前)。

问题是当我运行服务器时,它需要大约1.5GB。

我目前没有使用图像,媒体或其他选项。只有"正常"(即html+text+javascript)小部件,将它们组合起来创建更复杂的小部件,DBO和大量模板。

对于WT应用程序来说,这样的内存使用听起来正常吗?如果没有,是否有一种方法可以通过函数、数据结构和代码来分析内存使用情况(使用百分比等,就像我们可以使用时间分析器一样)?

显然,根据Valgrind,我没有泄漏。

==13061== Memcheck,内存错误检测器
==13061==版权所有(C) 2002-2015,和GNU GPL,由Julian Seward等人。
==13061==使用Valgrind-3.11.0和LibVEX;使用-h重新运行版权信息
==13061==命令:./GameServer——doroot =.——http-address 0.0.0.0——http-port 8080
==13061==父PID: 13060
13061 = = = =
13061 = = = =
==13061== HEAP总结:
==13061== in use at exit: 111,172 bytes in 243 block
==13061==总堆使用率:271,492个分配,271,249个释放,1,545,796,300个字节分配
13061 = = = =
==13061==泄漏总结:
==13061==绝对丢失:0块0字节
==13061==间接丢失:0块0字节
==13061== possible lost: 0 bytes in 0 blocks
==13061==仍可访问:225块109,820字节
==13061==可通过启发式到达的:
==13061== newarray: 1536字节,16块
==13061== suppressed: 1,352 bytes in 18 block
==13061==可达块(指针指向的块)没有显示。
==13061==查看它们,重新运行:——leak-check=full——show-leak-kinds=all
13061 = = = =
==13061==对于检测到的和抑制的错误计数,使用:-v
重新运行:==13061== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 18 from 18)

编辑:回答海特的问题:它确实是从这么多的用法开始的。虽然,我确实充分和广泛地使用容器来暂时保存数据(例如,从DB查询,但没有什么可以证明这么多内存,因为整个DB文件目前只有80kb),内存的使用不会随着时间的推移而增加,第二个用户的增加是可以忽略的(系统监视器确认1.4GB开始后,我刷新了几次网页从user_1和我用user_2登录后)。

Edit2:使用带有massif工具的valgrind,我发现了问题:它是应用程序的另一部分,与WT完全无关。

Ok, 问题与WT无关。正如Hayt在评论中建议的那样,我使用了带有massif选项的valgrind,制作了一个小的.sh文件(我使用的是Ubuntu),下面是这一行:

valgrind——tool=massif——trace-children=yes——num-callers=500——log-file=massif.txt ./WebServer——docroot=./——http-address 0.0.0.0——http-port 8080

其中"WebServer"是应用程序的名称,后面的选项是特定于wt服务器的,问题是由项目的另一部分引起的,我忘记了我包括直到我注意到内存交换的那一刻。

解决。