Hmm. I can definitely see dynamic proxies leaking if NHibernate were set up and torn down frequently. That's not something that would ordinarily happen in production though.
Still, I'm having a hard time understand how that leakage would really add up to a dangerous level (several hundred MBs) even with hundreds of proxies created and recreated many times. Is anything else leaking? Threads perhaps? Jeff. On Tue, Dec 15, 2009 at 3:01 PM, David Gardiner <[email protected]>wrote: > Thanks.. Yes, I'm concerned too :-) > > I've been using .NET Memory Profiler to try and track down the causes. > > These tests are database integration tests using Castle and > NHibernate. It seems that each test that runs leaks, which I suspect > is due to some of the dynamic (proxy) classes that these libraries > create. Even calling Dispose() on the container doesn't release > everything, as I think these are stuck in the appdomain. > > These are integration tests, so we expect that they'll run slower, so > that isn't such an issue. > > -dave > > On Dec 16, 7:53 am, Jeff Brown <[email protected]> wrote: > > Unfortunately this is not supported out of the box right now. I do have > > some refactoring in mind that will make it possible but I can't promise > when > > that will be done. > > > > I'm concerned about the tests running out of memory. Loading up extra > > AppDomains will increase the memory pressure somewhat and may also > > significantly slow down test execution. If there's a big leak in the 3rd > > party libraries you are using then it could affect you in production too. > > > > I'd recommend using a memory profiler like DotTrace to help pin down the > > cause. Once you've got that figured out, it's unlikely you'll need to > > resort to exotic fixture isolation strategies anyways. :-) > > > > Jeff. > > > > On Mon, Dec 14, 2009 at 10:38 PM, David Gardiner <[email protected] > >wrote: > > > > > I know that you can run the entire assembly in a separate process or > > > appdomain using the /runner parameter, but is is possible (or > > > relatively easy) to specify that just a particular test or a test > > > fixture be run in a separate appdomain? > > > > > I have some tests that seem to generate a lot of memory allocation > > > (apparently from 3rd-party libraries), to the extent that sometimes > > > the tests don't complete because they run out of memory. > > > > > If I could load each fixture into a separate appdomain, then I suspect > > > the memory issues would be reduced. > > > > > -dave > > > > > -- > > > > > You received this message because you are subscribed to the Google > Groups > > > "MbUnit.User" group. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]<mbunituser%[email protected]> > <mbunituser%[email protected]<mbunituser%[email protected]> > > > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/mbunituser?hl=en. > > > > > > -- > > You received this message because you are subscribed to the Google Groups > "MbUnit.User" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<mbunituser%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/mbunituser?hl=en. > > > -- You received this message because you are subscribed to the Google Groups "MbUnit.User" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/mbunituser?hl=en.
