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)

-- 
Russ Whaley
whaley.r...@gmail.com

Reply via email to