Hi Dennis, thanks for your suggestions.
Currently, I don't dispose of editing contexts explicitly. I had EOF errors a few years ago when I used to have dispose() calls after the final saveChanges(), so I stopped doing dispose(). (I don't recall the details.) I do however create editing contexts frequently and do only limited stuff in each one. I don't use the session editing context. So in theory, any editing context should become unreachable once the component is no longer in the page cache, and then the garbage collector should take care of it. Are you suggesting something different? And you also suggest that when I dispose() of editing contexts, the corresponding snapshots are purged from the snapshot cache? That would be new to me. Currently I don't know of a method to do that other than invalidateAllObjects() or invalidateObjectsWithGlobalIDs(). Maik > Am 27.01.2016 um 10:39 schrieb Dennis Bliefernicht > <dennis.blieferni...@xyrality.com>: > > Hi, > >> On 26.01.2016, at 14:28, Musall Maik <m...@selbstdenker.ag >> <mailto:m...@selbstdenker.ag>> wrote: >> >> Anyway, heap sizes of up to 60 GByte are apparently not so common, at least >> not with WebObjects. I found a helpful article [1] about very large JVM >> heaps, including the hint to the Zing Azul JVM, which features a stopless >> garbage collector [3], but costs $8000 per server and year. In the end, we >> may actually be trying that if other options fail, but first I need to >> understand more about what's in memory. I'm currently approaching that >> question via JProfiler, especially to find out if that's all snapshot cache >> (how would I limit that in size?) or some other homemade memory leak. > > Just a shot in the dark (especially the regular timing makes this weird), but > we have had some issues with the snapshot cache accumulating a lot of data > when some editing contexts weren't disposed early on (and the referred > objects thus were carried on until session timeouts may finally remove them). > With the number of objects growing we observed (if I remember correctly) > quadratic runtime growth when retrieving objects form the snapshot cache. As > we handle a large amount of small objects, this escalated rather suddenly > when the cache exceeded a certain size. In this case JProfiler should show > you larger amounts of time spent retrieving objects from the snapshot cache > in the Hotspots list. In our case we were able to dispose editing contexts as > soon as possible, flushing the objects out of the cache and keeping retrieval > time speedy. Restarting instances would in this case also keep the > accumulated cruft down, this scenario would probably only match though, if a > significant amount of objects come into the system shortly before or at the > waiting times. > > Greetings > Dennis > > -- > > > > > > ----------------------------------------------------- > Dennis Bliefernicht • Backend Development > T +49 40 357 3001 62 > dennis.blieferni...@xyrality.com <mailto:dennis.blieferni...@xyrality.com> > > XYRALITY GmbH • Friedensallee 290 • 22763 Hamburg > www.xyrality.com <http://www.xyrality.com/> > Registergericht: Hamburg HRB 115332 > Geschäftsführer: Sven Ossenbrüggen > ----------------------------------------------------- >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com