The profiler of my master thesis does this (and a lot more). It instruments new on all classes in a package + some other core things like String, Color, Rectangle and Collections and check if some of them have equivalent state and are immutable. If they are the profiler allows you to group the instances by the context where you allocated them (a simple stack trace, nothing fancy).
http://repositorio.uchile.cl/bitstream/handle/2250/147381/Discovering-memory-optimization-opportunities-by-analyzing-shareable.pdf?sequence=1&isAllowed=y <http://repositorio.uchile.cl/bitstream/handle/2250/147381/Discovering-memory-optimization-opportunities-by-analyzing-shareable.pdf?sequence=1&isAllowed=y> It doesn’t have a cool ui, but it works :) Alejandro > On Jan 9, 2020, at 7:17 PM, Sven Van Caekenberghe <[email protected]> wrote: > > Another requirement for caching and sharing instances is that the object is a > true read only value object. > >> On 9 Jan 2020, at 22:45, Esteban Maringolo <[email protected]> wrote: >> >> Well... the theme having these colors in a table of some sort, even >> keyed by a role name (very much like windows), isn't like a lot of >> work. >> >> Of course, "premature optimization is the root of all evil". But given >> that such "careless" behavior has been around for a while, maybe it is >> not premature any longer. :) >> >> Regards! >> >> Esteban A. Maringolo >> >> On Thu, Jan 9, 2020 at 5:14 PM Sean P. DeNigris <[email protected]> >> wrote: >>> >>> ducasse wrote >>>> it looks like a real plague. >>> >>> What is the real effect on performance? There is a cost to the complexity of >>> e.g. caching too, no? >>> >>> >>> >>> ----- >>> Cheers, >>> Sean >>> -- >>> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html >>> >> > >
