相关疑难解决方法(0)

解读"记忆泄漏"

在.NET透视图中:

  • 什么是内存泄漏
  • 如何确定您的应用程序是否泄漏?有什么影响?
  • 你怎么能防止内存泄漏?
  • 如果您的应用程序有内存泄漏,它会在进程退出或被杀死时消失吗?或者,即使在流程完成后,应用程序中的内存泄漏也会影响系统上的其他进程?
  • 那么通过COM Interop和/或P/Invoke访问的非托管代码呢?

.net performance memory-leaks com-interop

170
推荐指数
14
解决办法
1万
查看次数

C,C++中的内存泄漏; 忘了做免费,删除

我们使用malloc在C中分配内存,在C++中使用new分配内存.我知道分配的内存必须在C中使用free并在C++中使用free来释放或返回给OS.如果在分配内存后忘记使用free/delete,则表示存在内存泄漏.

现在,我的问题是,这个内存是否仅在程序执行期间泄漏; 或者它是永久性泄漏/丢失还是重新启动系统后再次获得?实际上内部过程是什么?内存泄漏/丢失究竟意味着什么?

如果有人能够详细解释这个问题或者给我一些不错的参考资料,我将非常感激.

更新1

在阅读了一些答案之后,我了解到程序终止后内存会返回给OS /系统,如果是这样,为什么每个人都需要关心内存泄漏,为什么防止内存泄漏非常重要?

更新2

因此,应该防止内存泄漏,以便系统不会因为缺乏足够的内存来分配崩溃?

更新3

因此,在阅读完所有答案之后,我意识到内存泄漏是安静的重要问题,以防止系统崩溃.但是,对于像我这样的初学者,我怎么能确定我的程序是否完全没有内存泄漏.我尝试自由,删除如果我使用malloc,新的但有时,它会变得混乱.是否有任何工具或方法可以用来知道我的程序是否有任何内存泄漏?

更新4

在阅读答案之后,我现在已经了解了内存泄漏代码的重要性,更少使用新/删除,更多地使用STL,学习了新的东西,如RAII,valgrind和良好的编程实践.谢谢大家 :)

c c++

35
推荐指数
4
解决办法
2万
查看次数

标签 统计

.net ×1

c ×1

c++ ×1

com-interop ×1

memory-leaks ×1

performance ×1