Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2247684.2247695acmconferencesArticle/Chapter ViewAbstractPublication PagesmspConference Proceedingsconference-collections
research-article

Towards region-based memory management for Go

Published: 16 June 2012 Publication History

Abstract

Region-based memory management aims to lower the cost of deallocation through bulk processing: instead of recovering the memory of each object separately, it recovers the memory of a region containing many objects. It relies on static analysis to determine the set of memory regions needed by a program, the program points at which each region should be created and removed, and, for each memory allocation, the region that should supply the memory. The concurrent language Go has features that pose interesting challenges for this analysis. We present a novel design for region-based memory management for Go, combining static analysis, to guide region creation, and lightweight runtime bookkeeping, to help control reclamation. The main advantage of our approach is that it greatly limits the amount of re-work that must be done after each change to the program source code, making our approach more practical than existing RBMM systems. Our prototype implementation covers most of the sequential fragment of Go, and preliminary results are encouraging.

References

[1]
A. Aiken, M. Fähndrich, and R. Levien. Better static memory management: Improving region-based analysis of higher-order languages. In Proc. PLDI 1995, pages 174--185. ACM Press, 1995.
[2]
E. D. Berger, B. G. Zorn, and K. S. McKinley. Reconsidering custom memory allocation. In OOPSLA 2002, pages 1--12. ACM Press, 2002.
[3]
C. Boyapati, A. Salcianu, W. Beebee Jr., and M. Rinard. Ownership types for safe region-based memory management in real-time Java. In Proc. PLDI 2003, pages 324--337. ACM Press, 2003.
[4]
S. Cherem and R. Rugina. Region analysis and transformation for Java programs. In Proc. 4th ISMM, pages 85--96. ACM Press, 2004.
[5]
D. Chestnykh. Passwordhash and PBKDF2 Go libraries. URL https://github.com/dhcest/passwordhash.
[6]
M. Derkacz. BLAS: Basic linear algebra subprograms for Go. URL https://github.com/ziutek/blas.
[7]
D. Gay and A. Aiken. Language support for regions. In Proc. PLDI 2001, pages 70--80. ACM, 2001.
[8]
P. Gerakios, N. Papaspyrou, and K. Sagonas. A concurrent language with a uniform treatment of regions and locks. In Electronic Procedings in Theoretical Computer Science, pages 79--93, 2010.
[9]
D. Grossman, G. Morrisett, T. Jim, M. Hicks, Y. Wang, and J. Cheney. Region-based memory management in Cyclone. In Proc. PLDI 2002, pages 282--293. ACM Press, 2002.
[10]
C. Lattner and V. Adve. Automatic pool allocation for disjoint data structures. SIGPLAN Notices, 38:13--24, 2003.
[11]
C. Lattner and V. Adve. Automatic pool allocation: Improving performance by controlling data structure layout in the heap. In Proc. PLDI 2005, pages 129--142. ACM Press, 2005.
[12]
H. Li. Programming language benchmarks. URL http://attractivechaos.github.com/plb/.
[13]
A. Moraes. Gocask library. URL http://code.google.com/p/gocask.
[14]
Q. Phan. Region-Based Memory Management for the Logic Programming Language Mercury. PhD thesis, Catholic University of Leuven, Belgium, 2009.
[15]
Q. Phan, Z. Somogyi, and G. Janssens. Runtime support for region-based memory management. In Proc. 8th ISMM, pages 61--70. ACM Press, 2008.
[16]
M. Tofte and J.-P. Talpin. Implementation of the typed call-by-value lambda-calculus using a stack of regions. In Proc. 21st POPL, pages 188--201. ACM Press, 1994.
[17]
M. Tofte and J.-P. Talpin. Region-based memory management. Information and Computation, 132(2):109--176, 1997.

Cited By

View all
  • (2023)Parallelism in a Region Inference ContextProceedings of the ACM on Programming Languages10.1145/35912567:PLDI(884-906)Online publication date: 6-Jun-2023
  • (2013)A low overhead method for recovering unused memory inside regionsProceedings of the ACM SIGPLAN Workshop on Memory Systems Performance and Correctness10.1145/2492408.2492415(1-10)Online publication date: 16-Jun-2013

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MSPC '12: Proceedings of the 2012 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness
June 2012
82 pages
ISBN:9781450312196
DOI:10.1145/2247684
  • General Chair:
  • Lixin Zhang,
  • Program Chair:
  • Onur Mutlu
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 June 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Go
  2. experiments
  3. memory management
  4. memory regions
  5. program analysis
  6. program transformation

Qualifiers

  • Research-article

Conference

PLDI '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 6 of 20 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Parallelism in a Region Inference ContextProceedings of the ACM on Programming Languages10.1145/35912567:PLDI(884-906)Online publication date: 6-Jun-2023
  • (2013)A low overhead method for recovering unused memory inside regionsProceedings of the ACM SIGPLAN Workshop on Memory Systems Performance and Correctness10.1145/2492408.2492415(1-10)Online publication date: 16-Jun-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media