Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
One-bit counts between unique and sticky
Proceedings of the 1st international symposium on Memory management
Memory allocation for long-running server applications
Proceedings of the 1st international symposium on Memory management
Thread-specific heaps for multi-threaded programs
Proceedings of the 2nd international symposium on Memory management
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Error-free garbage collection traces: how to cheat and not get caught
SIGMETRICS '02 Proceedings of the 2002 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Proceedings of the 3rd international symposium on Memory management
Search based reverse engineering
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Shared Source Cli Essentials
Remoting with C# and .NET: Remote Objects for Distributed
Remoting with C# and .NET: Remote Objects for Distributed
A Multithreaded Concurrent Garbage Collector Parallelizing the New Instruction in Java
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
A heuristic search approach to solving the software clustering problem
A heuristic search approach to solving the software clustering problem
Active Memory Processor: A Hardware Garbage Collector for Real-Time Java Embedded Devices
IEEE Transactions on Mobile Computing
Peer-to-Peer with VB.NET
A Multiple Hill Climbing Approach to Software Module Clustering
ICSM '03 Proceedings of the International Conference on Software Maintenance
Escape analysis for JavaTM: Theory and practice
ACM Transactions on Programming Languages and Systems (TOPLAS)
An empirical study of the robustness of two module clustering fitness functions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
The KaffeOS Java runtime system
ACM Transactions on Programming Languages and Systems (TOPLAS)
Improving virtual machine performance using a cross-run profile repository
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An analysis of the garbage collection performance in Sun's HotSpot/sup TM/ Java Virtual Machine
PCC '02 Proceedings of the Performance, Computing, and Communications Conference, 2002. on 21st IEEE International
Variable grouping in multivariate time series via correlation
IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics
The Current State and Future of Search Based Software Engineering
FOSE '07 2007 Future of Software Engineering
The multi-objective next release problem
Proceedings of the 9th annual conference on Genetic and evolutionary computation
Editorial: Search-based software engineering
Computers and Operations Research
Locating dependence structures using search-based slicing
Information and Software Technology
Contention-aware scheduler: unlocking execution parallelism in multithreaded java programs
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
NUMA-aware memory manager with dominant-thread-based copying GC
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Superstate identification for state machines using search-based clustering
Proceedings of the 12th annual conference on Genetic and evolutionary computation
Search-based software engineering: Trends, techniques and applications
ACM Computing Surveys (CSUR)
AS-GC: an efficient generational garbage collector for java application servers
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Automatic generation of basis test paths using variable length genetic algorithm
Information Processing Letters
Hi-index | 0.00 |
Garbage collection can be a performance bottleneck in large distributed, multi-threaded applications. Applications may produce millions of objects during their lifetimes and may invoke hundreds or thousands of threads. When using a single shared heap, each time a garbage collection phase occurs all threads must be stopped, essentially halting all other processing. Attempts to fix this bottleneck include creating a single heap per thread, however this may not scale to large thread intensive applications. In this paper we explore the potential of clustering threads into related sub-heaps. We hypothesize that this will lead to a smaller shared heap, while maintaining good garbage collection parallelism. We leverage results from software module clustering to achieve this goal. Our results show that we can significantly reduce the number of sub-heaps created and reduce the number of objects in the shared heap in a representative application. This suggests that clustering may be a promising optimization technique for garbage collection in large multi-threaded systems with many shared objects.