On #parrot I had some discussion about tools/build/pmc2c.pl with bacek
and DietCoke.  I pasted some output from dprofpp:

   http://nopaste.snit.ch/13401
   http://nopaste.snit.ch/13402

On the basis of these pastes, I was advised to consider using Memoize.pm
to memoize the most frequently called functions in the modules
underlying pmc2c.pl.

However, my preliminary investigation suggests that Memoize is not a
good bet here.  As I understand Memoize, it is useful in circumstances
where you have to have to call a function repeatedly and where there's a
high probability that you will call it with the same arguments more than
once.  Memoize caches the return value associated with a particular set
of arguments.  But Memoize will only be worth the effort if the time you
save by doing cache lookups rather than function calls is greater than
the time needed to load Memoize.pm and memoize the function in the first
place.

But the functions in the modules underlying pmc2c.pl are not this sort
of functions.  They tend to be OO methods that change the internal state
of the object.  They tend not to have meaningful return values (i.e.,
return values other than truth, falseness, undef, etc.)

So my hunch is that Memoize is not likely to be useful here -- but I
would welcome any cases to the contrary that anyone might cite.

Thank you very much.
kid51

Reply via email to