From: Chris W. <ch...@vi...> - 2006-06-25 10:27:04
|
Hi Rob, Checked out latest (25/06/2006 about 1:40AM GMT)... compiled, tested, installed all okay. Ran code below and watched memory in task manager diminish... Running on Windows XP Professional SP2, Intel CPU (P4 2.4GHz), 1GB RAM... Installed: ActivePerl 5.8.7 build 815 VC6++ Rgds Chris Wearn >But I can't duplicate the memory leak reported (perl 5.8.7 813, >Win32::GUI 1.03, win98 and win2k). Jez reports this as still happening >on WinXP - can anyone else duplicate a memory leak running this code: use strict; use Win32::GUI; my ($W,$but); while (1) { $W = new Win32::GUI::Window( #-name => "TestWindow", -pos => [ 0, 0], -size => [210, 200], -text => "TestWindow", ); $but=$W->AddButton( #-name => "test", -text => "Button 1", -size => [ 70, 22 ], -pos => [ 20, 20 ], ); } -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.9.3/374 - Release Date: 23/06/2006 |
From: Jeremy W. <jez...@ho...> - 2006-06-25 12:42:55
|
Hi Chris, >Ran code below and watched memory in task manager diminish... > >Running on Windows XP Professional SP2, Intel CPU (P4 2.4GHz), 1GB RAM... > When you run that script do you find that Perl only take about 50% of CPU while some other process takes up the rest? Looks like this could be an issue with XP. Cheers, jez. |
From: Robert M. <rm...@po...> - 2006-06-25 13:24:40
|
Chris Wearn wrote: > Checked out latest (25/06/2006 about 1:40AM GMT)... compiled, tested, > installed all okay. Thanks for the report. > Ran code below and watched memory in task manager diminish... > Running on Windows XP Professional SP2, Intel CPU (P4 2.4GHz), 1GB RAM... > Installed: ActivePerl 5.8.7 build 815, VC6++ Robert May wrote previously: >>But I can't duplicate the memory leak reported (perl 5.8.7 813, >>Win32::GUI 1.03, win98 and win2k). Jez reports this as still happening >>on WinXP - can anyone else duplicate a memory leak running this code: This is looking like an XP thing at the moment. Can either of you reduce the problem to something that doesn't need Win32::GUI? I.e. can we find out if it's a window creation/deletion thing, or a perl thing? Does it still leak if we only create a window (without the button)? Can someone run this with a fixed number of iterations, and tell me how much memory is leaked per iteration? Is all the memory returned when the app exits? I can confirm that I don't see this problem in win98, and will re-test win2k tomorrow. Regards, Rob. > use strict; > use Win32::GUI; > > my ($W,$but); > while (1) { > $W = new Win32::GUI::Window( > #-name => "TestWindow", > -pos => [ 0, 0], > -size => [210, 200], > -text => "TestWindow", > ); > > $but=$W->AddButton( > #-name => "test", > -text => "Button 1", > -size => [ 70, 22 ], > -pos => [ 20, 20 ], > ); > } |
From: Chris W. <ch...@vi...> - 2006-06-26 00:41:08
|
Hi, >This is looking like an XP thing at the moment. Can either of you >reduce the problem to something that doesn't need Win32::GUI? I.e. can >we find out if it's a window creation/deletion thing, or a perl thing? >Does it still leak if we only create a window (without the button)? YES! >Can someone run this with a fixed number of iterations, and tell me how >much memory is leaked per iteration? 56 - 60 K each iteration >Is all the memory returned when the app exits? YES! Also Jez asked if only 50% of the CPU was taken up... When running Task Manager Processes before commencement I have 99% System Idles processes. Only things open are a command prompt and Task Manager. Start code and figures vary but average 40% CPU to Perl.exe and 30% CPU to Explorer.exe, the figures change between these two executables by as much as 10%, however the total between the two stays at 70% total CPU. When terminating with Ctrl-C, note that perl.exe died straight away however Explorer.exe took a few moments more to die and return the memory. Regards, Chris > use strict; > use Win32::GUI; > > my ($W,$but); > while (1) { > $W = new Win32::GUI::Window( > #-name => "TestWindow", > -pos => [ 0, 0], > -size => [210, 200], > -text => "TestWindow", > ); > > $but=$W->AddButton( > #-name => "test", > -text => "Button 1", > -size => [ 70, 22 ], > -pos => [ 20, 20 ], > ); > } -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.9.3/374 - Release Date: 23/06/2006 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.9.4/375 - Release Date: 25/06/2006 |
From: Jeremy W. <jez...@ho...> - 2006-06-26 08:09:52
|
> >Does it still leak if we only create a window (without the button)? > >YES! For me, I get no leak when just the window. I also played with a few other controls, and they leak too (a listview seemed to leak more than a button). Adding a child window to the parent window almost doesn't leak - a 4k leak every 30 seconds or so. > >Can someone run this with a fixed number of iterations, and tell me how > >much memory is leaked per iteration? > >56 - 60 K each iteration Hummm - I seem to leak about 108 bytes per itteration. >Start code and figures vary but average 40% CPU to Perl.exe and 30% CPU to >Explorer.exe, the figures change between these two executables by as much >as >10%, however the total between the two stays at 70% total CPU. > >When terminating with Ctrl-C, note that perl.exe died straight away however >Explorer.exe took a few moments more to die and return the memory. Yeah, I see the same thing. Cheers, jez. |
From: Robert M. <rm...@po...> - 2006-06-26 19:05:35
|
Jeremy White wrote: >>> Does it still leak if we only create a window (without the button)? >> YES! > > For me, I get no leak when just the window. I also played with a few other > controls, and they leak too (a listview seemed to leak more than a button). > Adding a child window to the parent window almost doesn't leak - a 4k leak > every 30 seconds or so. I can confirm that I don't see this on w2k either, so I afraid that I'm not going to be much use in helping to track this down. >>> Can someone run this with a fixed number of iterations, and tell me how >>> much memory is leaked per iteration? >> 56 - 60 K each iteration > > Hummm - I seem to leak about 108 bytes per itteration. I find the 108 byte figure more believable. At 56-60k per loop iteration you'd run out of memory pretty quickly, and there's nothing we allocate from the perl side that would be causing that much memory to be allocated. >> Start code and figures vary but average 40% CPU to Perl.exe and 30% CPU to >> Explorer.exe, the figures change between these two executables by as much >> as >> 10%, however the total between the two stays at 70% total CPU. >> >> When terminating with Ctrl-C, note that perl.exe died straight away however >> Explorer.exe took a few moments more to die and return the memory. Sorry, but for now you're on your own with this one. Regards, Rob. |
From: Chris W. <ch...@vi...> - 2006-06-26 23:56:25
|
Hi, >>>> Can someone run this with a fixed number of iterations, and tell me how >>>> much memory is leaked per iteration? >>> 56 - 60 K each iteration >> Hummm - I seem to leak about 108 bytes per itteration. >I find the 108 byte figure more believable. At 56-60k per loop >iteration you'd run out of memory pretty quickly, and there's nothing we >allocate from the perl side that would be causing that much memory to be >allocated. Sorry... what's a few decimal places between friends... As Rob said, this is primarily going to impact on an application that opens and closes many windows. At least the memory is more or less returned instantly on exit. Is there a "Known Issues" or limitations section somewhere in the documentation until this is eventually tracked down? Regards Chris -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.9.4/375 - Release Date: 25/06/2006 |