可能是重复的问题:
C++中的垃圾收集 - 为什么使用?
你好,我读了一些关于垃圾回收器的文章,但有一件事我仍然不明白 - 为什么要使用垃圾回收?
我来尝试解释一下我的想法:
垃圾回收器应该会在没有需要时释放动态分配的内存,对吧?那么,如果你用 C 语言编写程序,你知道是否需要某个内存块,如果不需要,就可以直接销毁它。
那么,既然只需要明智地管理内存分配和释放,为什么还要使用垃圾回收呢?或者是我漏掉了什么重要的东西吗?谢谢。
可能是重复的问题:
C++中的垃圾收集 - 为什么使用?
你好,我读了一些关于垃圾回收器的文章,但有一件事我仍然不明白 - 为什么要使用垃圾回收?
我来尝试解释一下我的想法:
垃圾回收器应该会在没有需要时释放动态分配的内存,对吧?那么,如果你用 C 语言编写程序,你知道是否需要某个内存块,如果不需要,就可以直接销毁它。
那么,既然只需要明智地管理内存分配和释放,为什么还要使用垃圾回收呢?或者是我漏掉了什么重要的东西吗?谢谢。
您需要尽快释放Interop资源(锁定文件)。 Gc.Collect可以确保COM对象被释放(如果没有引用)。
如果您进行PrintPreview,每个页面需要2个Gdi句柄(图像+元文件)。 这些资源不会被PrintDocument或PrintControler释放,而是等待GC。
我在交互式程序上测试了在用户返回主菜单时使用Gc.Collect的操作。 通过此操作,任务管理器报告的内存约为50%。
我认为这并不重要,但是当您知道有很多内存未被引用时,编写Gc.Collect是一个简单的选择。
内存管理是实现问题,与程序的目标无关。
所谓程序目标,指的是业务逻辑等方面。
当你处理实现问题时,你会浪费时间和精力在那些对完成程序没有帮助的事情上。