开发者的垃圾收集困境

作为传统方法可以尝试改善内存管理,而不会减速系统,因为传统方法可以

垃圾收集肯定不会像一个特别诱惑的主题,因为大多数将其与拖延到人行道上一周一次。但垃圾收集是软件开发中的一个重要概念,它在Java和Microsoft的.NET这样的平台上提供了关键的内存管理功能。然而,该过程可能意味着应用程序在表现方面支付高价格。

通过最近从新工具中出现了解决问题的尝试Azul系统Terracotta

是时候给Java踩刹车了吗?《信息世界》专栏作家尼尔·麦卡利斯特解释了为什么Java可能已经担任其目的.|保持最新的Java与JavaWorld Enterprise Java时事通讯.]

垃圾收集挑战在垃圾收集中,程序不再使用的对象将被回收,为应用程序甚至计算机释放资源。但具有讽刺意味的是,垃圾收集行为可能会束缚系统。

“像许多复杂的企业应用程序一样,我们需要在JVM (Java虚拟机)缓存中使用大量的代码。这通常会导致很长的垃圾收集时间。严重的‘全球停止’垃圾收集可能会导致服务中断,”新闻数字媒体的首席技术官乔伊·凯西说。

Java电子商务服务提供商Ecetera的CTO和架构师Matthias Matook说:“垃圾收集确实给应用程序带来了很大的麻烦,尤其是在企业领域(有许多并发用户,大量数据要由可预测延迟较低的应用程序处理)。”

IDC分析师Al Hilwa说,垃圾收集的问题实际上可以追溯到30年前的Lisp等编程语言。“这个想法是为了从开发人员手中移除繁琐和容易出错的过程,即内存管理,并将其自动化。当你将某件事自动化时,你总是要做出权衡,但随着时间的推移,技术的进步使得这些权衡只在有限的情况下有用。”

新工具如何尝试帮助Hilwa说,Java运行时和。net框架提供了自动垃圾收集技术,帮助开发人员减少错误,总体上编写更好的代码。“这些技术在使定制软件开发成为企业主流方面发挥了关键作用。但对于真正要求高性能的应用程序,必须仔细权衡垃圾收集的性质,以确保应用程序执行中的不确定性暂停不是问题。”

兵马俑通过通过其BigMemory产品绕过Java垃圾收集来接近该问题。作为公司的企业EHCACHE产品的扩展缓存和Java附件,BigMemory提供了一个流程,用于存储大量数据 - 多达1TB的堆积缓存。该公司表示,这提高了内存利用率和应用程序性能。

Terracotta首席执行官Amit Pandey说:“今天的应用程序变得非常庞大,原因有二:一是它们必须支持的用户数量,二是它们必须支持的数据量。”他说,网络应用程序及其扩展需求加剧了这个问题。尽管Terracotta目前专注于Java,但它也在为。net开发类似的技术。

Azul Systems通过提供一个名为Zing的替代Java运行时解决了垃圾收集问题,该运行时具有应用程序感知的资源控制器,并允许每个实例的内存堆大小高达1TB。该公司声称,它提供的吞吐量和内存分配率是其他Java平台的100倍。

Zing在虚拟化基础架构上运行,并提供内存碎片整理优势。“无需停止申请,”我们可以与申请并行进行[碎片整理],这是一位Azul副总裁的Shyam Pillimarri说。

.NET和Java垃圾收集的状态Microsoft的Doug Seven,Visual Studio Group Products Manager,注意垃圾收集已被用于.NET和Common语言运行时以来,自成立以来:“.NET Framework的垃圾收集器为您的应用程序管理内存的分配和释放。每次你创建一个新对象,公共语言运行时为来自托管堆的对象分配内存。只要托管堆中的地址空间可用,运行时继续为新对象分配空间。但是,内存不是无限的。最终垃圾收集器必须执行一个集合以释放一些内存。“

虽然微软优化了垃圾收集的目标是提高效率,但用户可以运行性能分析工具来确定垃圾收集的效果,Seven说。他注意到。net 4提供了后台垃圾收集功能,其中进程的某些部分在专用线程上进行,从而提高了性能。

Oracle拒绝讨论Java垃圾收集,但JRuby编程语言(将Java放到JVM上)的一名开发人员表示,垃圾收集技术已经成熟,因此性能问题已经有所缓解。“JVM的各种垃圾收集器已经成熟到几乎可以容纳任何大小的应用程序的程度,”Rails托管提供商Engine Yard的JRuby项目架构师Charles Nutter说。

“这些天我经常遇到的是分配吞吐量瓶颈,你不能足够快地分配对象。它们几乎不占用(垃圾收集)时间,但你只能如此快速地分配和初始化内存,”纳特说。Nutter说,JVM上的所有语言都在一定程度上受到垃圾收集的影响,因为它们开发了许多寿命较短的对象。“像JRuby这样的动态语言通常更麻烦一些,因为我们通常还必须创建对象来表示数字和某些类型的方法调用。”

这篇文章中,“开发者的垃圾收集困境,最初发表于InfoWorld.com.跟着商业技术新闻的最新发展每天都会获得关键故事的摘要信息世界每日简报

阅读更多关于开发人员世界的更多信息在InfoWorld的开发者世界频道。

这个故事,“开发者的垃圾收集困境”最初是由信息世界

加入网络世界社区有个足球雷竞技appFacebookLinkedIn评论是最重要的主题。

版权©2010Raybet2

SD-WAN采购商指南:要询问供应商(和您自己)的关键问题