1
A
回答
2
valgrind --tool=massif
是正确的解决方案。它会给你所有关于哪个线程在什么时间点使用多少内存的信息。
2
我认为像IBM/Rational Purify或valgrind内存分析工具可能是你所需要的。
另外,如果你的程序在启动时使用600MB,你应该首先检查你的依赖库正在做的,一旦他们得到加载。你甚至可能还没有输入main()
,但他们可能正在创建一些重量级的全局静态对象,它们在事情开始之前就被初始化了。
另一件事要记住的是,每个线程会得到很多的分配给它一个它堆栈存储器。它可能是一个兆字节或更多的线程,所以如果你自己创建600个线程,那么600Mb已经消失了。
+0
是的,它确实是由依赖于... thx的库引起的 – qiuxiafei 2011-04-07 14:00:07
相关问题
- 1. 有没有办法知道会话使用多少内存?
- 2. 有什么方法可以知道ElementTree DOM消耗多少内存?
- 3. 有没有办法以编程方式知道对象在内存中占用了多少空间? (.Net 2.0)
- 4. Linux如何知道进程使用了多少物理内存?
- 5. 有什么办法可以知道调用者类名吗?
- 6. 有什么方法可以知道自ajax调用init以来经过了多少秒钟?
- 7. 有什么方法可以知道何时处理了OnNext?
- 8. 我可以在Linux内核v2.6中使用内核级线程,并且有什么方法可以知道我的线程的线程级别吗?
- 9. 如何知道我在一个进程中使用了多少内存? win32 C++
- 10. 有没有办法查看变量使用多少内存?
- 11. 有什么方法可以知道什么时候创建了一个对象?
- 12. 有什么办法可以从浏览器内部保存PDF?
- 13. 有什么办法可以避免静态内存区溢出?
- 14. 有没有办法知道cudaMalloc要保留多少空间?
- 15. 有什么办法可以在非WPF线程上使用Dispatcher;新的多线程
- 16. 我可以了解一个Collection使用多少内存?
- 17. memcache可以告诉你它使用了多少内存?
- 18. 有什么办法可以控制Ruby瘦服务器使用的内存?
- 19. 我可以知道XSL转换处理了多少XML文档?
- 20. 有什么办法可以阻止http处理未知方法?
- 21. 有没有什么办法可以减少GPU Memory Caffe的使用?
- 22. 有什么办法可以访问所有的android通知?
- 23. 有没有什么办法可以从池中得到多少连接数
- 24. Python:有什么办法可以知道在哪个virtualenv脚本运行?
- 25. 不知道什么是占用这么多的内存?
- 26. Python脚本知道它使用多少内存
- 27. 有什么办法来知道哪些存储过程通过我的代码?
- 28. 我们可以知道使用流时发生了多少IO时间
- 29. 有什么办法可以减少这段代码?
- 30. 有什么办法可以减少IDisposable的样板代码量?
第一个问题是:你怎么知道它是使用600MB?你可能在看错误的东西。 – 2011-04-07 03:34:27
线程共享全局堆空间。一个线程的唯一本地数据是它的堆栈和线程局部变量。 – 2011-04-07 04:42:45