From: Donald K. <dka...@ya...> - 2005-01-30 01:38:35
|
PS It is now the IDocumenterInfo type that gets searched for when looking for available documenters (refer to the class InstalledDocumenters.cs for details). When creating new documenters it will be necessary to create an implementation of IDocumenter, IDocumenterConfig and IDocumenterInfo. don _____ From: ndo...@li... [mailto:ndo...@li...] On Behalf Of Donald Kackman Sent: Saturday, January 29, 2005 7:29 PM To: ndo...@li... Subject: [ndoc-devel] about my latest CVS commit In preparation for using an unloadable AppDomain to do the documentation build, rather than a thread, I've reversed the relationship between IDocumenter and IDocumenterConfig. Up until now, as soon as the GUI was loaded all of the IDocumenters were also loaded, and A LOT of the memory that each consumed as builds were done, was not released. Now only the much less memory intensive IDocumenterConfig classes (and a new IDocumenterInfo helper type) are loaded by the GUI and when a build is done, the IDocumenter is created and then discarded. This should result in some immediate memory gains, as the documenter will now be eligible for garbage collection after the build is complete, rather than hanging around, attached to the UI. The next step is to create the IDocumenter in a separate AppDomain so that it can be unloaded completely, along with the assemblies that are being documented. In the meantime, please let me know of any bugs or unexpected errors that you notice in the dev branch. There were a lot of different places that I touched for this change and even though I'm pretty sure I got it pretty well debugged, you never know. Cheers, don |