A session is really just a map of references to objects on the heap. Several sessions can hold references to the same object. Becuase of this the amount of memory your sessions consume is often smaller (in bytes) than the amount of disk space required to hold a serialized copy of the same sessions.
Sunny, You may want to take a look at http://javawebparts.sourceforge.net/ There is a tool in that package for measuring session size. Since it is open source, you can explore to see how they're doing it.