【发布时间】:2008-09-29 03:58:53
【问题描述】:
我需要知道何时为特定程序分配内存。如何查看内存分配的位置。
【问题讨论】:
-
你能提供更多细节吗?
-
你的意思是你需要一个内存分析器吗?
-
哈哈...电脑的背面。让我上了那个:-)
我需要知道何时为特定程序分配内存。如何查看内存分配的位置。
【问题讨论】:
您需要更具体地了解操作系统,如果是解释型或运行时编译型(例如 PHP、JAVA、.NET 等),可能还需要更具体的语言。
但是,一般来说:
应该注意的是,即使内存已经分配给操作系统,它可能还没有真正被分配 - 操作系统会等到内存被使用后才会为它获取页面。内存分析器将帮助您了解给定进程在何时何地发生这种情况。
内存分配在哪里是一个更大的问题。有几个观点需要考虑:
您对哪种观点感到好奇?您是在编写在感兴趣的程序中运行、与其共享内存、在同一操作系统上运行、在同一 CPU 上运行的代码,还是将逻辑分析仪连接到内存总线?
-亚当
【讨论】:
我会在这里尝试并推荐dotTrace,这是我用过的最好的分析器。它会告诉你内存使用情况等等。
【讨论】:
安装Process Explorer,在列表中找到您的应用程序/进程,右键单击,属性,性能选项卡。
【讨论】:
作为一个警示故事,即使您自己分配的不多,您使用的库也可能会进行大量分配,因此您需要与内核或框架相关的东西。正如 Ben Hoffstein 所说,dotTrace 可能是 .Net 应用程序的一个很好的解决方案(这是我在查看问题标签后才意识到的)
【讨论】: