Exploiting array manipulation habits to optimize garbage collection and type flow analysis. (24th November 2014)
- Record Type:
- Journal Article
- Title:
- Exploiting array manipulation habits to optimize garbage collection and type flow analysis. (24th November 2014)
- Main Title:
- Exploiting array manipulation habits to optimize garbage collection and type flow analysis
- Authors:
- Colnet, Dominique
Sonntag, Benoît - Abstract:
- <abstract abstract-type="main" id="spe2300-abs-0001"> <title>SUMMARY</title> <p id="spe2300-para-0001">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 <sc>NULL</sc> 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<abstract abstract-type="main" id="spe2300-abs-0001"> <title>SUMMARY</title> <p id="spe2300-para-0001">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 <sc>NULL</sc> 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 © 2014 John Wiley &amp; Sons, Ltd.</p> </abstract> … (more)
- Is Part Of:
- Software, practice & experience. Volume 45:Number 12(2015)
- Journal:
- Software, practice & experience
- Issue:
- Volume 45:Number 12(2015)
- Issue Display:
- Volume 45, Issue 12 (2015)
- Year:
- 2015
- Volume:
- 45
- Issue:
- 12
- Issue Sort Value:
- 2015-0045-0012-0000
- Page Start:
- 1639
- Page End:
- 1657
- Publication Date:
- 2014-11-24
- Subjects:
- Computer software -- Periodicals
Computer programming -- Periodicals
Computer programs -- Periodicals
005.3 - Journal URLs:
- http://onlinelibrary.wiley.com/ ↗
- DOI:
- 10.1002/spe.2300 ↗
- Languages:
- English
- ISSNs:
- 0038-0644
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 8321.453000
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 4279.xml