Looks like an issue with child containers... what's your scenario for
choosing child containers?

--
Mauricio

On Nov 30, 3:34 pm, Matt Lund <[email protected]> wrote:
> I've read several articles about release policies, and it's only
> reluctantly that I post this because I'm sure I must be doing
> something dumb.
>
> I would expect the following code to exhibit a low/constant memory
> consumption.  But instead, it builds very quickly to the point that
> it'll run out of memory.
>
> I think I may be having a problem getting the child container to be
> released from the parent container but I'm not sure.  Any ideas?
>
> class Program
>     {
>         static void Main(string[] args)
>         {
>                         IWindsorContainer parentContainer = new 
> WindsorContainer();
>
> parentContainer.Register(Component.For<Service1>().ImplementedBy<Service1>( 
> ).LifeStyle.Transient);
>
>                         for (int i = 0; i < 100000; i++)
>                         {
>                                 using (IWindsorContainer childContainer = new 
> WindsorContainer())
>                                 {
>                                         childContainer.Kernel.ReleasePolicy = 
> new
> LifecycledComponentsReleasePolicy();
>                                         
> parentContainer.AddChildContainer(childContainer);
>
>                                         Service1 service1 =
> (Service1)childContainer.Resolve(typeof(Service1));
>                                         service1.Method1();
>
>                                         childContainer.Release(service1);
>
>                                         if (i % 100 == 0)
>                                         {
>                                                 GC.Collect(2);
>                                                 Console.WriteLine("Iteration: 
> {0}, Memory {1}", i,
> GC.GetTotalMemory(false));
>                                         }
>
>                                         
> parentContainer.RemoveChildContainer(childContainer);
>                                 }
>                         }
>                 }
>     }
>
>         public class Service1
>         {
>                 private byte[] big = new byte[1000000];
>
>                 public void Method1()
>                 {
>                 }
>         }

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" 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/castle-project-users?hl=en.

Reply via email to