-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
内存泄漏疑问:服务执行过skynet.exit()后,在debug_console中cmem指令还是能够看到这个服务占用内存 #1090
Comments
cmem 不包含 lua 分配的内存。cmem 无法被 exit 自动释放。通常为该服务的 c 模块自行申请的内存。 另外,发送出去的消息算作发送服务的 cmem , 需要接收方收到消息才清除。如果接收方未正确释放,会造成泄漏。 |
谢谢云风大哥 |
请教下这个问题 你解决了吗 我这边也出现相同的情况 cmem还残留内存占用 小的几K 大的能占到2M多 |
除了上面列过的一些正常情况。 再补充一点,如果一个 so (通常是 require 的 c 库)被一个服务首先加载,那么这个 so 占的内存是算在这个服务上的。如果这个服务退出,但别的服务还在使用这个 so (多次引用)。那么看起来,就有内存未释放。 |
|
我用服务来做游戏场景 开了2000个 然后exit() 有时候内存回去了 有时候内存没降下去 cmem看到内存是回去了 list lua的进程也不在了 难道lua_close() 有可能收回不了内存? |
内存交还给 heap/jemalloc ,不等于交还给 os 。 |
多谢解答 继续测下去 的确内存还给了jemalloc 还能复用 |
项目存在内存泄漏,有几个疑问想请教下各位大佬,谢谢各位!
项目上线后发现内存一直在稳定增长, 内存占用情况如下:
debug_console中mem查看所有服务内存占用123MB
debug_console中cmem查看所有服务占用2021MB
top指令查看进程占用内存2345MB
疑问:
The text was updated successfully, but these errors were encountered: