I heard this one before, and for all I can tell it's simply not true. What's your setup?
I have tried some simple benchmarks against two apps. One with a single subclass, and another with 3 subclasses. The one with a single subclass used 22M (RSS), the one with 3 subclasses used 23M (RSS).
I don't have such a simple example handy, but it's not drastically different from your setup except I subclass an Application class, which subclasses Sinatra::Base. I'm loading about 10 subclasses, not 3. I don't have the numbers handy but when I last tested it, adding subclasses did add several MB of memory per instance.
I have tried some simple benchmarks against two apps. One with a single subclass, and another with 3 subclasses. The one with a single subclass used 22M (RSS), the one with 3 subclasses used 23M (RSS).
This was running it with thin. The code is here: http://gist.github.com/187475