My image size keeps growing and growing.�� I've been scouring Google and mailing lists, trying to find a solution.
Observables:
- Running this 'query' shows I have a whole lot instances of Objects I've created that are not "releasing".��There are 65000 instances of one Object/Class, and 350,000 of another.�� (there are more, these are just the big hitters).
(Object allSubclasses collect: [ :aClass |
�� �� �� �� aClass -> aClass allInstances size])
�� �� �� �� sort: [ :a :b | a value > b value ].
- Each time I load my app/UI - which creates/loads another 5000 of one object and 25,000 of the 2nd object - my Class>>instanceCount(s) keep growing and so does my image size.
- I've done:
- Smalltalk garbageCollect.
- Smalltalk garbageCollectMost.
- 10 timesRepeat: [ Smalltalk garbageCollect]. (many, many times)
Somehow, these instances I create are not 'releasing'.�� All of my Classes are direct subclasses of Object.�� Interestingly enough, all these objects sit in a single collection for the high-level model - and there are only 67 instances of that Object... here's the hierarchy:
MyTunes - instance holds a Dictionary of Libraries, rootFolder and tags collection
Library - instance(s) hold Dictionary of Artists & Playlists, tags collection, and MyTunes reference
Artist - instances hold Dictionary of Albums, and Library reference
Album - instances hold Dictionary of Tracks, and Artist reference
Track - instances hold TagInfo, Album reference
TagInfo - instances hold fileReference and ByteString of ID3 tag info.
PlayList - instances hold Dictionary of Tracks, Library reference.
Here's my start code in my app... (I don't know how to use SpApplication, SpPresenter and my model(s) together - this may be part of the problem)..
start
"Override this to start your app"
"*** I don't know how to use SpApplicatoin, SpPresenter and my model MyTunes ***"
| myTunes tmpLibrary myPres |
"where do I store the model -> MyTunes?"
myTunes := MyTunes new.
"this is just for testing, but the actual re-load of the library takes 15-20 minutes (60,000 files!)"
tmpLibrary := myTunes readLibraryFromSTONfile.
myTunes addLibrary: tmpLibrary.
"where do I store the presenter -> MyTunesPresenter? "
myPres := MyTunesPresenter on: tmpLibrary.
myPres openWithSpec.
��
While I'd love help with my App/Pres/Model - my first goal is to stop the rapid growth of my object.
Questions?
Thanks!
Russ Whaley (USA, Ohio)
--