Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Reference escape analysis: optimizing reference counting based on the lifetime of references
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Cyclic reference counting with lazy mark-scan
Information Processing Letters
Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Inside COM
Advanced compiler design and implementation
Advanced compiler design and implementation
A Fortran-Compiled List-Processing Language
Journal of the ACM (JACM)
Field analysis: getting useful and low-cost interprocedural information
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Shifting garbage collection overhead to compile time
Communications of the ACM
An efficient, incremental, automatic garbage collector
Communications of the ACM
A method for overlapping and erasure of lists
Communications of the ACM
Communications of the ACM
An on-the-fly reference counting garbage collector for Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java Virtual Machine Specification
Java Virtual Machine Specification
Essential .NET: The Common Language Runtime
Essential .NET: The Common Language Runtime
Parallelizing Programs with Recursive Data Structures
IEEE Transactions on Parallel and Distributed Systems
Deriving Residual Reference Count Garbage Collectors
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Write barrier elision for concurrent garbage collectors
Proceedings of the 4th international symposium on Memory management
Compile-Time Concurrent Marking Write Barrier Removal
Proceedings of the international symposium on Code generation and optimization
Compiler optimizations for nondeferred reference: counting garbage collection
Proceedings of the 5th international symposium on Memory management
A principled approach to nondeferred reference-counting garbage collection
Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Online reorganization of databases
ACM Computing Surveys (CSUR)
Flexible reference-counting-based hardware acceleration for garbage collection
Proceedings of the 36th annual international symposium on Computer architecture
Offline GC: trashing reachable objects on tiny devices
Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems
Cyclic reference counting by typed reference fields
Computer Languages, Systems and Structures
Resurrector: a tunable object lifetime profiling technique for optimizing real-world programs
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
Numerous optimizations exist for improving the performance of nondeferred reference-counting (RC) garbage collection. Their designs are ad hoc, intended to exploit different count removal opportunities. This paper shows that many of these optimizations can be unified using a notion called overlooking roots. The paper also shows how the notionenables more powerful versions of past optimizations and makes new optimizations possible. While recent static analyses have dramatically improved nondeferred RC performance, margins relative to the deferred variant were still significant in the worst case. With the optimizations made possible by overlooking roots, we show that these margins can be reduced to within 4% on nearly all programs in a test suite, at even large heap sizes, and to within 23% in the worst case.