首页> 外文期刊>ACM transactions on software engineering and methodology >Understanding and Combating Memory Bloat in Managed Data-Intensive Systems
【24h】

Understanding and Combating Memory Bloat in Managed Data-Intensive Systems

机译:了解和应对托管数据密集型系统中的内存膨胀

获取原文
获取原文并翻译 | 示例

摘要

The past decade has witnessed increasing demands on data-driven business intelligence that led to the proliferation of data-intensive applications. A managed object-oriented programming language such as Java is often the developer's choice for implementing such applications, due to its quick development cycle and rich suite of libraries and frameworks. While the use of such languages makes programming easier, their automated memory management comes at a cost. When the managed runtime meets large volumes of input data, memory bloat is significantly magnified and becomes a scalability-prohibiting bottleneck.This article first studies, analytically and empirically, the impact of bloat on the performance and scalability of large-scale, real-world data-intensive systems. To combat bloat, we design a novel compiler framework, called FACADE, that can generate highly efficient data manipulation code by automatically transforming the data path of an existing data-intensive application. The key treatment is that in the generated code, the number of runtime heap objects created for data classes in each thread is (almost) statically bounded, leading to significantly reduced memory management cost and improved scalability. We have implemented FACADE and used it to transform seven common applications on three real-world, already well-optimized data processing frameworks: GraphChi, Hyracks, and GPS. Our experimental results are very positive: the generated programs have (1) achieved a 3% to 48% execution time reduction and an up to 88x GC time reduction, (2) consumed up to 50% less memory, and (3) scaled to much larger datasets.
机译:在过去的十年中,见证了对数据驱动型商业智能的日益增长的需求,从而导致了数据密集型应用程序的泛滥。诸如Java之类的面向对象的托管编程语言,由于其快速的开发周期以及丰富的库和框架套件,通常是开发人员选择实现此类应用程序的选择。尽管使用此类语言使编程变得更容易,但它们的自动内存管理需要付出一定的代价。当托管运行时遇到大量输入数据时,内存膨胀将被放大,并成为禁止伸缩性的瓶颈。本文首先以分析和经验的方式研究膨胀对大规模,真实世界的性能和可伸缩性的影响数据密集型系统。为了避免膨胀,我们设计了一个新颖的编译器框架,称为FACADE,可以通过自动转换现有数据密集型应用程序的数据路径来生成高效的数据处理代码。关键在于,在生成的代码中,为每个线程中的数据类创建的运行时堆对象的数量(几乎)是静态限制的,从而显着降低了内存管理成本并提高了可伸缩性。我们已经实现了FACADE,并使用它来转换了三个现实世界中已经充分优化的数据处理框架(GraphChi,Hyrack和GPS)上的七个通用应用程序。我们的实验结果是非常积极的:生成的程序(1)减少了3%至48%的执行时间,将GC时间减少了88倍,(2)消耗的内存减少了50%,并且(3)扩展为更大的数据集。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号