首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析网络应用程序(套接字处理程序等)中的资源泄漏

分析网络应用程序(套接字处理程序等)中的资源泄漏
EN

Stack Overflow用户
提问于 2011-02-22 00:28:04
回答 2查看 721关注 0票数 0

对于内存泄漏,有许多可用的工具,例如valgrind,您可以使用它们来找出泄漏来自何处。对于OpenGL泄漏,有glDEBugger,它对这类东西非常有用。

有没有类似的网络编程工具?尤其是在使用linux套接字和管道时。

也许有一个for-posix工具可以测量程序使用了多少posix资源(有多少套接字、多少线程、多少互斥锁等)。

另外,如果我错了,请纠正我,但高级语言(java、python等,而不是c++)能够像处理内存管理一样处理这些资源管理吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-22 00:45:53

Valgrind能够跟踪您感兴趣的一些资源:

通过memcheck

  • File描述符的
  • 内存通过--track-fds=yes memcheck选项通过和
  • 线程和锁定

生成的信息并不总是详细的,但它可以非常有帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-02-22 00:56:18

strace和lsof可以(在一定程度上)帮助识别泄漏。几乎肯定会有一些内存与套接字、管道等一起分配,您可能能够使用内存调试工具来跟踪这些内存,特别是如果您有包装资源分配器的自定义类,在这种情况下,将大量未使用的数据添加到这些类中并在memcheck的结果中查找这些大型数据块可能是实际可行的。

高级语言可能能够也可能无法管理这些资源。例如,如果您正在使用一种高级语言访问相同的低级函数,那么很可能这些资源没有得到管理。但是如果资源被包装在可以被垃圾收集的类中,那么是的,我认为垃圾收集也可以处理这些资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5068469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档