Wt: 1.5 GB用于运行论坛(即使只有一个用户连接).这正常吗?
Wt: 1.5 GB used to run a forum (even with a single user connected). Is it normal?
正如标题所说,我正在使用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服务器的,问题是由项目的另一部分引起的,我忘记了我包括直到我注意到内存交换的那一刻。
解决。
- C++如何通过用户输入删除列表元素
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 当套接字连接断开时检测C/C++Unix
- 使用用户定义函数的字符串反转
- 用户定义函数中的指针和输入
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 如何只允许用户输入正整数
- C++如何计算用户输入的数字中的偶数位数
- 是否有 Windows 用户空间函数来枚举连接的网络共享?
- 导入机器人机械臂(6轴)的连接部件,并通过用户输入(C++代码)使每个关节旋转
- 如何将C 中的后端写入与TCL/TCK用户界面连接
- 如何检测用户何时与网络断开连接
- 在Qt C++中连接用户特定的DBus会话
- Wt: 1.5 GB用于运行论坛(即使只有一个用户连接).这正常吗?
- 处理来自服务器上多个用户的连接
- C++程序在执行时崩溃且没有错误消息 con = 驱动程序>连接(主机、用户、通行证);
- Paho MQTT c++连接用户和密码
- 如果 else 语句连接到子字符串,则使用只会导致 else-语句仅包含用户输入的任何内容