Guys, I've a bloated image and I don't know why it's so huge and how to
shrink it. It happened that my image has grown from 50MB to 440MB in a morning. I've already followed these suggestions https://github.com/pharo-project/pharo-core/wiki/Memory-Hogs and flushing monticello repos the image reduced itself to 219MB, better. Anyway I don't know how to reduce it more. Evaluating: SmalltalkImage current reportCPUandRAM I found you can see ByteStrings occupy 85.5% of space! I tried to inspect instances of ByteString, but I can't find anything worth of. If I Open pointers to the instance I find references to GLMPanePort, GLMPane and NodeModel (see attached png) I'm on Pharo 4 TIA Davide <http://forum.world.st/file/n4876854/huge_image.png> -- View this message in context: http://forum.world.st/Huge-image-tp4876854.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. |
David,
I don't have a direct solution, but I have been playing with an analysis technique for solving this particular type of problem: scads of Strings and a need to "make sense of the reference graph". If you look at this example[1], you'll see that there are 202K instances of String (this example is from a GemStone db). the nodes pointing to the String node, show that of the 202K strings, there are 70K instances of Array referencing one or more of the 202k strings; 47K instances of MCVersionInfo and 43K MethodVersionRecord instances. I've found that this approach can help you understand why you have so many strings ... The basic technique is to gather the instances of String, then for each instance of string, gather the collection of objects that reference the String instance and summarize the reference by class instance count and keep an IdentitySet of the instances referencing Strings by class so that you can build the next level of references .... For GemStone, this information is displayed using Roassal2 and the calculations are done by scanning a backup of the repository... You could probably brute force calculate this in Pharo (be sure to isolate the objects that you are using in your analysis from the set of objects being analyzed otherwise things get out of control ... HTH, Dale [1] https://github.com/dalehenrich/obex#class-instance-counts-based-on-selected-set-of-instances |
I don't know why my original message isn't accepted by the list, but it's on forum: http://forum.world.st/Huge-image-td4876854.html
Anyway, thanks Dale, I'm going to try your suggestion. Davide
|
In reply to this post by Dale Henrichs-3
I don't know why my original message isn't accepted by the list, but it's on
forum: http://forum.world.st/Huge-image-td4876854.html Anyway, thanks Dale, I'm going to try your suggestion. Davide Dale Henrichs-3 wrote > David, > > I don't have a direct solution, but I have been playing with an analysis > technique for solving this particular type of problem: scads of Strings > and a need to "make sense of the reference graph". > > If you look at this example[1], you'll see that there are 202K instances > of String (this example is from a GemStone db). the nodes pointing to > the String node, show that of the 202K strings, there are 70K instances > of Array referencing one or more of the 202k strings; 47K instances of > MCVersionInfo and 43K MethodVersionRecord instances. > > I've found that this approach can help you understand why you have so > many strings ... > > The basic technique is to gather the instances of String, then for each > instance of string, gather the collection of objects that reference the > String instance and summarize the reference by class instance count and > keep an IdentitySet of the instances referencing Strings by class so > that you can build the next level of references .... > > For GemStone, this information is displayed using Roassal2 and the > calculations are done by scanning a backup of the repository... > > You could probably brute force calculate this in Pharo (be sure to > isolate the objects that you are using in your analysis from the set of > objects being analyzed otherwise things get out of control ... > > HTH, > > Dale > > > [1] > https://github.com/dalehenrich/obex#class-instance-counts-based-on-selected-set-of-instances -- View this message in context: http://forum.world.st/Huge-image-tp4876855p4876977.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. |
Free forum by Nabble | Edit this page |