Determine Oracle package body memory size We have recently added a lot of new packages to our system, and trying to determine incremental memory usage from a prior version of our product. I know I can get the sharable_mem value from v$db_object_cache.  However, that will not include all packages in our schema, as they may be aged out. 

Is there any way to determine the memory size of a package that is not in the object cache?  And, I do not mean lines of source code (ALL_SOURCE), but size of whatever it is that oracle does under the hood to compile/parse the package.

Thanks!
Have a look at PL/SQL Program Limits


  In the shared memory pool, a package specification, ADT specification,
  standalone subprogram, or anonymous block is limited to 67108864
  (2^26) DIANA nodes which correspond to tokens such as identifiers,
  keywords, operators, and so on. This allows for ~6,000,000 lines of
  code unless you exceed limits imposed by the PL/SQL compiler, some of
  which are given in Table C-1.


I remember long time ago with Oracle 8i I "managed" once to get an PLS-00123: program too large error. At this time the limit was 64K DIANA nodes. 

I think nowadays it is hardly possible to exceed the limit.