我刚刚在阅读关于几种编程语言性能的文章时,发现垃圾回收经常被提到。垃圾回收是否会影响语言的性能?如果是,如何影响?
我刚刚在阅读关于几种编程语言性能的文章时,发现垃圾回收经常被提到。垃圾回收是否会影响语言的性能?如果是,如何影响?
这基本上取决于编程语言/运行时环境。
在某些实现中,GC会暂停您的应用程序(挂起线程),然后进行垃圾回收,因此会出现性能问题。
一些实现执行优化,使您的代码在GC收集未引用对象时运行。例如,.Net GC可以被调整用于不同的收集模式和对象堆,并且您也可以提示它不要在对性能敏感的代码区域运行。
由于所有这些都是实现特定的,我无法提供更多细节。但我应该提到的是,语言运行时通常会尝试非常努力地优化它们的GC,大部分时间你甚至不会注意到它的存在。然而,在非常特定的情况下可能会出现问题,并希望有可能解决这个问题以最小化GC压力。
垃圾回收是一种机制,用于清理未被使用的对象以释放资源分配,垃圾收集器基于一个强大的算法来分配哪些对象应该被清除,哪些不应该。这个过程会消耗资源,因此建议开发者应明确释放或清理未使用的对象。
为了改善应用程序的性能和资源消耗,应考虑使用适当的集合。强类型和数组始终具有优先使用的高级别,以避免装箱/拆箱,并减少管理集合所需的资源成本。
请参考使用Array、ArrayList、HashTable。