From: Ronnie Collinson Date: 2012-02-17T18:58:14+09:00 Subject: Re: Symbol garbage collection But two equal strings can be two separate objects ("a" == "a" could be false), two equal symbols will be (including your example, all variables are still pointing to your new/hacked symbol ) the same object, its not how the data is stored, saving memory but how it can be a single instance for the lifetime of the process. If space is the only gain, then gcing symbols would remove some other nice properties such as single instance, Id rather pay a small bit of space for nice properties. When/If the symbols were in a separate area in memory to the gc's heap, then the gc would never waste time looking at the symbols, would that make a measurable/worthwhile improvement to the gc speed?