从 .NET 视角来看:
- 内存泄漏是什么?
- 如何确定您的应用程序是否泄漏?会有哪些影响?
- 如何预防内存泄漏?
- 如果您的应用程序有内存泄漏,进程退出或被终止后问题是否解决?或者在进程结束后,应用程序中的内存泄漏是否对系统上的其他进程产生影响?
- 那么通过 COM 互操作和/或 P/Invoke 访问的非托管代码呢?
从 .NET 视角来看:
所有的内存泄漏都可以通过程序终止来解决。
如果泄漏的内存足够多,操作系统可能会决定代表您解决这个问题。
我会同意Bernard在.net中关于内存泄漏的定义。
您可以对应用程序进行性能分析,查看其内存使用情况,并确定如果它在不应该使用大量内存时正在管理大量内存,则可以说它存在泄漏问题。
从托管代码方面来看,我敢肯定一旦进程被终止/移除,泄漏问题就会消失。
非托管代码是自己的一种形态,如果其中存在泄漏问题,它将遵循标准的内存泄漏定义。
一个定义是:无法释放不可访问的内存,在分配过程执行期间不能再分配给新进程。通常可以通过使用GC技术进行治疗或由自动化工具检测到。
欲获取更多信息,请访问http://all-about-java-and-weblogic-server.blogspot.in/2014/01/what-is-memory-leak-in-java.html。