In case somebody asks, lazy allocation is usually a win. Lots of programs (talking regular programs here) allocate a lot more RAM than they ever use. Java apps are notorious for this but it is really quite common. And it makes sense a lot of the time. Programs usually allocate lots of small blocks. It is more efficient to ask for a big block and parse it out as needed. But that does mean that a certain amount of that big block is never used.