Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2464157.2464158acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article

Towards hinted collection: annotations for decreasing garbage collector pause times

Published: 25 October 2018 Publication History

Abstract

Garbage collection is widely used and has largely been a boon for programmer productivity. However, traditional garbage collection is approaching both practical and theoretical performance limits. In practice, the maximum heap size and heap structure of large applications are influenced as much by garbage collector behavior as by resource availability.
We present an alternate approach to garbage collection wherein the programmer provides untrusted deallocation hints. Usage of deallocation hints is similar to trusted manual deallocation, but the consequence of an inaccurate hint is lost performance not correctness. Our hinted collector algorithm uses these hints to identify a subset of unreachable objects with both better parallel asymptotic complexity and practical performance. On some benchmarks, our prototype collector implementation achieves 10-20% pause time reductions. We close with a discussion of the design trade-offs inherent in our approach and lessons to be learned from our collector.

References

[1]
TIOBE Programming Community Index for January 2013. http://www.tiobe.com/content/paperinfo/tpci/.\Accessed: 2/1/2013.
[2]
P. Akritidis. Cling: A memory allocator to mitigate dangling pointers. In Proceedings of the 19th USENIX Conference on Security, USENIX Security'10, 2010.
[3]
P. Akritidis, M. Costa, M. Castro, and S. Hand. Baggy bounds checking: an efficient and backwards-compatible defense against out-of-bounds errors. In Proceedings of the 18th Conference on USENIX Security Symposium, SSYM'09, 2009.
[4]
K. Barabash. Scalable garbage collection on highly parallel platforms. Master's thesis, Technion - Israel Institute of Technology, 2011.
[5]
K. Barabash and E. Petrank. Tracing garbage collection on highly parallel platforms. In Proceedings of the 2010 International Symposium on Memory Management, ISMM'10, 2010.
[6]
E. D. Berger and B. G. Zorn. DieHard: probabilistic memory safety for unsafe languages. In Proceedings of the 2006 Conference on Programming Language Design and Implementation, PLDI'06, 2006.
[7]
H.-J. Boehm. Reducing garbage collector cache misses. In Proceedings of the 2nd International Symposium on Memory Management, ISMM'00, 2000.
[8]
H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Softw. Pract. Exper., Sept. 1988.
[9]
J. Caballero, G. Grieco, M. Marron, and A. Nappa. Undangle: early detection of dangling pointers in use-after-free and double-free vulnerabilities. In Proceedings of the 2012 International Symposium on Software Testing and Analysis, ISSTA 2012, 2012.
[10]
C.-Y. Cher, A. L. Hosking, and T. N. Vijaykumar. Software prefetching for mark-sweep garbage collection: hardware analysis and software redesign. In Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XI, 2004.
[11]
S. Cherem and R. Rugina. Compile-time deallocation of individual objects. In Proceedings of the 5th International Symposium on Memory Management, ISMM'06, 2006.
[12]
S. Cherem and R. Rugina. Uniqueness inference for compile-time object deallocation. In Proceedings of the 6th International Symposium on Memory Management, ISMM'07, 2007.
[13]
S. Cherem, L. Princehouse, and R. Rugina. Practical memory leak detection using guarded value-flow analysis. In Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'07, 2007.
[14]
C. Click, G. Tene, and M. Wolf. The Pauseless GC Algorithm. In Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments, VEE'05, 2005.
[15]
D. Dhurjati, S. Kowshik, V. Adve, and C. Lattner. Memory safety without runtime checks or garbage collection. In Proceedings of the 2003 ACM SIGPLAN Conference on Language, Compiler, and Tools for Embedded Systems, LCTES'03, 2003.
[16]
D. Dhurjati, S. Kowshik, and V. Adve. SAFECode: enforcing alias analysis for weakly typed languages. In Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'06, 2006.
[17]
R. Garner, S. M. Blackburn, and D. Frampton. A comprehensive evaluation of object scanning techniques. In Proceedings of the Tenth ACM SIGPLAN International Symposium on Memory Management, ISMM'11, San Jose, CA, USA, June 4 - 5, jun 2011.
[18]
S. Z. Guyer, K. S. McKinley, and D. Frampton. Free-Me: a static analysis for automatic individual object reclamation. In Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'06, 2006.
[19]
V. B. Lvin, G. Novark, E. D. Berger, and B. G. Zorn. Archipelago: trading address space for reliability and security. In Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XIII, 2008.
[20]
M. Maas, P. Reames, J. Morlan, K. Asanović, A. D. Joseph, and J. Kubiatowicz. GPUs as an opportunity for offloading garbage collection. In Proceedings of the 2012 International Symposium on Memory Management, ISMM'12, June 2012.
[21]
S. Nagarakatte, J. Zhao, M. M. Martin, and S. Zdancewic. CETS: compiler enforced temporal safety for C. In Proceedings of the 2010 International Symposium on Memory Management, ISMM'10, 2010.
[22]
G. Novark and E. D. Berger. DieHarder: securing the heap. In Proceedings of the 17th ACM Conference on Computer and Communications Security, CCS'10, 2010.
[23]
G. Novark, E. D. Berger, and B. G. Zorn. Exterminator: automatically correcting memory errors with high probability. In Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'07, 2007.
[24]
F. Qin, J. Tucek, J. Sundaresan, and Y. Zhou. Rx: treating bugs as allergies--a safe method to survive software failures. In Proceedings of the 12th ACM Symposium on Operating Systems Principles, SOSP'05, 2005.
[25]
F. Siebert. Limits of parallel marking garbage collection. In Proceedings of the 7th International Symposium on Memory Management, ISMM'08, 2008.
[26]
P. R. Wilson. Uniprocessor garbage collection techniques. In Proceedings of the International Workshop on Memory Management, IWMM'92, 1992.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISMM '13: Proceedings of the 2013 international symposium on memory management
June 2013
140 pages
ISBN:9781450321006
DOI:10.1145/2491894

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 October 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. deallocation hint
  2. hinted collection
  3. mark and sweep
  4. memory management
  5. parallel garbage collection

Qualifiers

  • Research-article

Conference

ISMM '13
Sponsor:
ISMM '13: International Symposium on Memory Management
June 20 - 21, 2013
Washington, Seattle, USA

Acceptance Rates

ISMM '13 Paper Acceptance Rate 11 of 22 submissions, 50%;
Overall Acceptance Rate 72 of 156 submissions, 46%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

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