KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I recently read the excellent article " The Transactional Memory / Garbage Collection Analogy " by Dan Grossman. One sentence really caught my attention: In theory, garbage collection can improve performance by increasing spatial locality (due to object-relocation), but in practice we pay a moderate performance cost for software engineering benefits. Until then, my feeling had always been very vague about it. Over and over, you see claims that GC can be more efficient, so I always kept that notion in the back of my head. After reading this, however, I started having serious doubts. As an experiment to measure the impact on GC languages, some people took some Java programs, traced the execution, and then replaced garbage collection with explicit memory management. According to this review of the article on Lambda the ultimate , they found out that GC was always slower. Virtual memory issues made GC look even worse, since the collector regularly touches way more memory pages than the program itself at that point, and therefore causes a lot of swapping. This is all experimental to me. Has anybody, and in particular in the context of C++, performed a comprehensive benchmark of GC performance when comparing to explicit memory management? Particularly interesting would be to compare how various big open-source projects, for example, perform with or without GC. Has anybody heard of such results before? EDIT: And please focus on the performance problem , not on why GC exists or why it is beneficial. Cheers, Carl PS. In case you're already pulling out the flame-thrower: I am not trying to disqualify GC, I'm just t
Tags (comma-separated)
Save Edits
Cancel