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