I've been working with a collection of large XML documents and XSLTs to process them.
One problem I've got is that I have to shut Stylus down regularly to get it to release the memory it allocated for documents that I've ceased working with. Even if I shut down every document window Stylus still apparently maintains most of these documents in memory (although the 'Other Documents' branch on the project tree is now completely gone).
After a short time spent working with a handful of large XML documents, windoze tells me it has to increase the paging file size because Stylus won't let go (of memory).
Related to the "Other Documents" section. Generally I've noticed that the "Other Documents" section seems to continue to list files that are no longer 'active' until all of the document windows have been closed. Listing files that are used by the current XSLT scenario is also a bit obscure.
You may also want to check what Stylus does with documents pulled in via the XSLT document function after the XSLT has been closed down.
Another place to look is what happens with the documents in the Preview pane after the XSLT has been closed down. If these are always kept until Stylus is shut down then they could chew up a lot of memory long after their usefulness has expired.
For example (long-winded diatribe follows):
If I want to work with the results of the XSLT the copy that's in the preview pane is pretty useless to me once I've finished my initial analysis of it. I can't do much to it directly (like searching) and flicking between tabs isn't much good for doing compares of the results from different scenarios. In fact, if I have a result I want to study further, I always end up saving it to disk.
In other words I've found that being able to get at previous results of the same XSLT just isn't useful to me.
What would be far more useful would be the ability to throw the result into it's own new document window (even in preference to the option of saving it to disk). From a new document window I'd should still be able to save it to disk anyway.
Set a breakpoint on an XSLT that's used to process a large XML document preferably after it's been through some recursive process and come back out again (setting up keys also seems to be good).
Debug the XSLT and then cancel the XSLT's execution when you hit the breakpoint. The memory used to this point doesn't appear to be released.
Debug the XSLT again, roughly the same amount of memory seems to be used, but this is in addition to what was used the first time the XSLT was being debugged.
If you repeat the above process more and more memory is allocated and apparently not released - until you shut down Stylus.