in reply to Re^2: How to put a fat program on a (memory) weight-loss diet?
in thread How to put a fat program on a (memory) weight-loss diet? [SOLVED]

Re-write your classes using hash-based objects rather than Moose. You'll have to generate your own method subs, but none of the program logic will need to change much.

They'll take 1/10th the space and run 3 to 5 times more quickly.

  • Comment on Re^3: How to put a fat program on a (memory) weight-loss diet?

Replies are listed 'Best First'.
Re^4: How to put a fat program on a (memory) weight-loss diet?
by stvn (Monsignor) on Mar 06, 2009 at 21:43 UTC

    1. Moose objects are hash based objects, that won't change anything
    2. Depending on the actual classes (how many methods it has and how many attributes it has) it would be WAY more savings then 1/10th the size :)
    3. It may or may not run any quicker, Moose is pretty fast at runtime and vanilla Moose accessors typically benchmark pretty close to typical hand coded accessors (sure you can micro-optimize, but you loose readability/maintainability)

    The Moose "bloat" is coming from the metaclass instances, it is hard to reduce this because of two factors.

    1. That is what gives Moose all it's power
    2. Perl does not return memory to the OS, even if you DESTROY all your objects

    -stvn