POV-Ray : Newsgroups : povray.beta-test : Memory Leak in SSE2 b3 Server Time
1 Nov 2024 01:21:24 EDT (-0400)
  Memory Leak in SSE2 b3 (Message 1 to 10 of 10)  
From: Nathan Shomber
Subject: Memory Leak in SSE2 b3
Date: 4 May 2005 10:18:22
Message: <4278d9ae$1@news.povray.org>
I have a large scene file that causes a memory leak in the SSE2 version of 
beta3.  The first rendering uses up to 300MB of memory which stays allocated 
even when the render is done and I close the output window.  After the 
second rendering, pvengin-sse32.exe has 470MB allocated.  I am rendering 
using the standard ini file with "+fn +w800 +h600" as my options.

There is also a second issue that POV-Ray does not seem to give up when it 
cannot allocate more memory.  When I ran my system out of memory running 
POV-Ray, it just unallocates a chunk of 30MB or so then reallocates it in an 
infinite loop.  When I clicked stop, POV-Ray took its time with the swap 
file, but eventually stopped.  When I then clicked the close button (X in 
top right), I got the error message posted in beta-test.binaries with this 
subject.


I am working on isolating the problematic code.  It is a rather simple scene 
with:
1) just a couple area lights unioned with media in a difference of cylinders
2) a LOT of cylinders unioned together with individual pigments made using 
rand
3) some boxes.

If there is a known issue with any of these features, I will stop hunting 
for the problem, otherwise, I will trim the scene to the minimum cause.

-Nathan

WinXP Pro SP2
1GB (2x512MB) RAM
Pentium 4M 2.2GHz

PovRay 3.7.0.beta3.icl8-sse2.win32


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 10:29:51
Message: <4278dc5f$1@news.povray.org>
Nathan Shomber wrote:
> The first rendering uses up to 300MB of memory which stays allocated 
> even when the render is done and I close the output window.

How did you determine this?

	Thorsten


Post a reply to this message

From: Nathan Shomber
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 10:53:18
Message: <4278e1de$1@news.povray.org>
That is according to Task Manager.  (I know, not a reliable source.)  On 
that same note however, the VM Size increases by 70MB per additional run.

I know that there is a leak because after 3-4 renders, my computer starts 
using its swap file like crazy and nothing runs or refreshes very quickly, 
whereas it does during the first few renders.

I have trimmed my code down to a (very) small sample scene that exhibits the 
problem.  After each rendering pass POV-Ray consumes 10MB more VM space 
according to Task Manager.  This is compared to 3.6.1a which even after 10 
renders only uses a combined total of Mem and VM 10512K + 6224K = 16736K 
(much less that 3.7 would be (10MB*10=100MB each for both Mem and VM)).

Sample Scene: ( just 2 comments)

//Begin Sample
//End Sample

-Nathan

"Thorsten Froehlich" <tho### [at] trfde> wrote in message 
news:4278dc5f$1@news.povray.org...
> Nathan Shomber wrote:
>> The first rendering uses up to 300MB of memory which stays allocated even 
>> when the render is done and I close the output window.
>
> How did you determine this?
>
> Thorsten


Post a reply to this message

From: Nathan Shomber
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 10:54:32
Message: <4278e228$1@news.povray.org>
After investigating further, I think the Closing bug may happen when you 
click the close button (X) while pov is in the stopping state.  Another odd 
fact is that POV continues to acquire more memory even though it is 
"stopping".

-Nathan

"Nathan Shomber" <nat### [at] rejgondcom> wrote in message 
news:4278d9ae$1@news.povray.org...
>I have a large scene file that causes a memory leak in the SSE2 version of 
>beta3.  The first rendering uses up to 300MB of memory which stays 
>allocated even when the render is done and I close the output window. 
>After the second rendering, pvengin-sse32.exe has 470MB allocated.  I am 
>rendering using the standard ini file with "+fn +w800 +h600" as my options.
>
> There is also a second issue that POV-Ray does not seem to give up when it 
> cannot allocate more memory.  When I ran my system out of memory running 
> POV-Ray, it just unallocates a chunk of 30MB or so then reallocates it in 
> an infinite loop.  When I clicked stop, POV-Ray took its time with the 
> swap file, but eventually stopped.  When I then clicked the close button 
> (X in top right), I got the error message posted in beta-test.binaries 
> with this subject.
>
>
> I am working on isolating the problematic code.  It is a rather simple 
> scene with:
> 1) just a couple area lights unioned with media in a difference of 
> cylinders
> 2) a LOT of cylinders unioned together with individual pigments made using 
> rand
> 3) some boxes.
>
> If there is a known issue with any of these features, I will stop hunting 
> for the problem, otherwise, I will trim the scene to the minimum cause.
>
> -Nathan
>
> WinXP Pro SP2
> 1GB (2x512MB) RAM
> Pentium 4M 2.2GHz
>
> PovRay 3.7.0.beta3.icl8-sse2.win32
>


Post a reply to this message

From: Nathan Shomber
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 11:38:00
Message: <4278ec58$1@news.povray.org>
The memory increase appears to be related directly proportionally to the 
image size (at least for the blank scene).
ie: +w800 +h600 leads to a 9MB increase
+w8000 +h600 leads to a 90MB increase as does +w800 +h6000.

Perhaps a pixel buffer isn't getting flushed after the file is 
saved/displayed/closed?




A slightly Different Issue:

The amount of memory that is allocated and unreturned each render increases 
with the number of objects in the scene.  My sample was rendered with "+w1 
+h1 +fn"

camera{
    location <1,0,0>
    look_at <0,0,0>
}
//i=100000: 3.7 uses 60MB per render 3.6.1a used up to 87MB but dropped to a 
100kB increase.
//i=10000: 3.7 uses 4MB per render 3.6.1a no net increase at all
//i=1000000: 3.7 uses 722MB per render 3.6.1a used 810MB but dropped to 
7.7MB once the render finished.
#local i=100000;
#while (i>0)
    #local i=i-1;
    sphere{
        <i,i,i>,.5
    }
#end


Are the objects not being erased from memory in 3.7?


-Nathan



"Nathan Shomber" <nat### [at] rejgondcom> wrote in message 
news:4278e1de$1@news.povray.org...
> That is according to Task Manager.  (I know, not a reliable source.)  On 
> that same note however, the VM Size increases by 70MB per additional run.
>
> I know that there is a leak because after 3-4 renders, my computer starts 
> using its swap file like crazy and nothing runs or refreshes very quickly, 
> whereas it does during the first few renders.
>
> I have trimmed my code down to a (very) small sample scene that exhibits 
> the problem.  After each rendering pass POV-Ray consumes 10MB more VM 
> space according to Task Manager.  This is compared to 3.6.1a which even 
> after 10 renders only uses a combined total of Mem and VM 10512K + 6224K = 
> 16736K (much less that 3.7 would be (10MB*10=100MB each for both Mem and 
> VM)).
>
> Sample Scene: ( just 2 comments)
>
> //Begin Sample
> //End Sample
>
> -Nathan
>
> "Thorsten Froehlich" <tho### [at] trfde> wrote in message 
> news:4278dc5f$1@news.povray.org...
>> Nathan Shomber wrote:
>>> The first rendering uses up to 300MB of memory which stays allocated 
>>> even when the render is done and I close the output window.
>>
>> How did you determine this?
>>
>> Thorsten
>
>


Post a reply to this message

From: Nathan Shomber
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 11:38:47
Message: <4278ec87$1@news.povray.org>
oops, wrong branch of the tree... with my last post


Post a reply to this message

From: Nathan Shomber
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 11:39:25
Message: <4278ecad$1@news.povray.org>
Wow, I just can't used my newsreader.  It was in the right branch!

"Nathan Shomber" <nat### [at] rejgondcom> wrote in message 
news:4278ec87$1@news.povray.org...
> oops, wrong branch of the tree... with my last post
>


Post a reply to this message

From: Mike Raiford
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 12:18:19
Message: <4278f5cb@news.povray.org>
Nathan Shomber wrote:
> After investigating further, I think the Closing bug may happen when you 
> click the close button (X) while pov is in the stopping state.  Another odd 
> fact is that POV continues to acquire more memory even though it is 
> "stopping".
> 
> -Nathan
> 
> "Nathan Shomber" <nat### [at] rejgondcom> wrote in message 
> news:4278d9ae$1@news.povray.org...

Hm, The memory increase while it's 'stopping' could be due to the 
current sample's tracing progress taking more and more memory. Also, 
could occur while computing photons. I don't remember if 3.7 has them 
enabled or not. I'm just waiting for a more stable beta release before I 
seriously play with it. It's a very early beta from what I can see, and 
is still missing some features.

-- 
~Mike

Things! Billions of them!


Post a reply to this message

From: Nathan Shomber
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 12:30:04
Message: <4278f88c$1@news.povray.org>
I'm not using photons, so I agree with your first guess.

-Nathan

"Mike Raiford" <mra### [at] hotmailcom> wrote in message 
news:4278f5cb@news.povray.org...

> Hm, The memory increase while it's 'stopping' could be due to the current 
> sample's tracing progress taking more and more memory. Also, could occur 
> while computing photons. I don't remember if 3.7 has them enabled or not. 
> I'm just waiting for a more stable beta release before I seriously play 
> with it. It's a very early beta from what I can see, and is still missing 
> some features.
>
> -- 
> ~Mike
>
> Things! Billions of them!


Post a reply to this message

From: Chris Cason
Subject: Re: Memory Leak in SSE2 b3
Date: 4 May 2005 15:56:56
Message: <42792908@news.povray.org>
The main leak you would have been seeing was (as you suspected), the code was
not freeing the image memory when it deleted the image object. This has been
fixed.

There will probably be numerous other leaks since we have transitioned to a
system where all POV objects are represented by C++ classes and allocated
with new instead of our old malloc-based system, which provided us the means
to track memory usage and find leaks.

Once the main rendering issues settle down we'll spend some time tracking
down any memory leaks that have been introduced due to these changes and fix
them (as well as adding the ability to track memory usage of native C++ objects).

-- Chris


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.