首页> 外文期刊>Software >Exploiting array manipulation habits to optimize garbage collection and type flow analysis
【24h】

Exploiting array manipulation habits to optimize garbage collection and type flow analysis

机译:利用数组操作习惯来优化垃圾收集和类型流分析

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

摘要

A widespread practice to implement a flexible array is to consider the storage area into two parts: the used area, which is already available for read/write operations, and the supply area, which is used in case of enlargement of the array. The main purpose of the supply area is to avoid as much as possible the reallocation of the whole storage area in case of enlargement. As the supply area is not used by the application, the main idea of the paper is to convey the information to the garbage collector, making it possible to avoid completely the marking of the supply area. We also present a simple method to analyze the types of objects, which are stored in an array as well as the possible presence of NULL values within the array. This allows us to better specialize the work of the garbage collector when marking the used area, and also, by transitivity, to improve overall results for type analysis of all expressions of the source code. After introducing several abstract data types, which represent the main arrays concerned by our technique (i.e., zero or variable indexing, circular arrays and hash maps), we measure its impact during the bootstrap of two compilers whose libraries are equipped with these abstract data types. We then measure, on various software products we have not written, the frequency of certain habits of manipulation of arrays, to assess the validity of our approach. Copyright (c) 2014 John Wiley & Sons, Ltd.
机译:实施灵活阵列的普遍做法是将存储区域分为两部分:已使用区域,已可用于读/写操作;以及供应区域,在阵列扩大的情况下使用。供应区域的主要目的是在扩大的情况下尽可能避免整个存储区域的重新分配。由于应用程序不使用供应区域,因此本文的主要思想是将信息传送到垃圾收集器,从而有可能完全避免标记供应区域。我们还提供了一种简单的方法来分析存储在数组中的对象类型以及数组中是否存在NULL值。这使我们能够在标记使用区域时更好地专门化垃圾收集器的工作,并通过可传递性来改善源代码所有表达式的类型分析的总体结果。在介绍了几种抽象数据类型之后,它们代表了我们的技术涉及的主要数组(即零索引或变量索引,循环数组和哈希映射),然后在两个编译器的引导过程中测量了它们的影响,这些编译器的库都配备了这些抽象数据类型。然后,我们在尚未编写的各种软件产品上测量数组操作某些习惯的频率,以评估我们方法的有效性。版权所有(c)2014 John Wiley&Sons,Ltd.

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号