You can subscribe to this list here.
2001 |
Jan
(226) |
Feb
(139) |
Mar
(156) |
Apr
(95) |
May
(181) |
Jun
(166) |
Jul
(80) |
Aug
(59) |
Sep
(69) |
Oct
(83) |
Nov
(142) |
Dec
(33) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(42) |
Feb
(91) |
Mar
(76) |
Apr
(113) |
May
(67) |
Jun
(68) |
Jul
(37) |
Aug
(41) |
Sep
(16) |
Oct
(135) |
Nov
(51) |
Dec
(21) |
2003 |
Jan
(37) |
Feb
(36) |
Mar
(37) |
Apr
(103) |
May
(68) |
Jun
(70) |
Jul
(77) |
Aug
(12) |
Sep
(9) |
Oct
(53) |
Nov
(88) |
Dec
(63) |
2004 |
Jan
(263) |
Feb
(106) |
Mar
(36) |
Apr
(21) |
May
(21) |
Jun
(34) |
Jul
(33) |
Aug
(34) |
Sep
(35) |
Oct
(21) |
Nov
(43) |
Dec
(63) |
2005 |
Jan
(28) |
Feb
(42) |
Mar
(29) |
Apr
(14) |
May
(41) |
Jun
(20) |
Jul
(65) |
Aug
(136) |
Sep
(41) |
Oct
(74) |
Nov
(34) |
Dec
(94) |
2006 |
Jan
(85) |
Feb
(94) |
Mar
(68) |
Apr
(103) |
May
(66) |
Jun
(51) |
Jul
(24) |
Aug
(56) |
Sep
(57) |
Oct
(85) |
Nov
(73) |
Dec
(68) |
2007 |
Jan
(59) |
Feb
(32) |
Mar
(13) |
Apr
(32) |
May
(36) |
Jun
(36) |
Jul
(64) |
Aug
(35) |
Sep
(19) |
Oct
(10) |
Nov
(13) |
Dec
(20) |
2008 |
Jan
(26) |
Feb
(41) |
Mar
(19) |
Apr
(24) |
May
(16) |
Jun
(33) |
Jul
(34) |
Aug
(4) |
Sep
(11) |
Oct
|
Nov
(26) |
Dec
(23) |
2009 |
Jan
(5) |
Feb
(2) |
Mar
(21) |
Apr
(16) |
May
(13) |
Jun
(6) |
Jul
(34) |
Aug
(2) |
Sep
(1) |
Oct
(7) |
Nov
(5) |
Dec
(24) |
2010 |
Jan
(3) |
Feb
(5) |
Mar
(6) |
Apr
(6) |
May
(14) |
Jun
(6) |
Jul
(1) |
Aug
(12) |
Sep
(10) |
Oct
(9) |
Nov
|
Dec
(2) |
2011 |
Jan
(4) |
Feb
(5) |
Mar
(30) |
Apr
(1) |
May
(2) |
Jun
(5) |
Jul
(3) |
Aug
(2) |
Sep
(3) |
Oct
|
Nov
(6) |
Dec
|
2012 |
Jan
|
Feb
(10) |
Mar
|
Apr
|
May
(1) |
Jun
(3) |
Jul
(1) |
Aug
|
Sep
(2) |
Oct
|
Nov
(2) |
Dec
(4) |
2013 |
Jan
(5) |
Feb
(3) |
Mar
|
Apr
(3) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
(1) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(9) |
Nov
(7) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(5) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
(2) |
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
(1) |
17
(2) |
18
|
19
(1) |
20
|
21
(4) |
22
(2) |
23
(8) |
24
(1) |
25
(3) |
26
|
27
(2) |
28
(1) |
29
(2) |
30
(1) |
31
|
|
|
From: Waldemar B. <wb...@sa...> - 2011-03-23 21:25:33
|
Jeremy, It works! I had to take the 5.8.9 version. Firstly I try to take perl 5.10 and 5.12 versions but both suffer from this memory problem. Thank you for your great help! Regards Waldemar |
From: Jeremy W. <jez...@ho...> - 2011-03-23 16:14:56
|
> On 23.03.2011 15:42, Jeremy White wrote: > > I'm not sure the approach I use would help you as I draw the whole > > screen (fonts, graphics, backgrounds etc). I've looked at this again, > > and I think I've fixed the bug within Win32::GUI. You mentioned that you > > built Win32::GUI from scratch, so if you replace the DestroyWindow > > method in GUI.xs (around line 2231) with the code below it should fix > > things for you... > > I think this would be better placed in the Perlud_free() function found > in GUI_Helpers.cpp. this is automatically called upon WM_QUIT message > for all windows created by Win32::GUI, so you don't even need to relay > on Perl calling DESTROY on objects. if you want, I can commit this to > CVS as soon as I get to setup my dev. environment :-) My code was only a hack:) Yes, perlud_free is the ideal place - go ahead an commit it to CVS:) There may be other objects that need deleting (fonts) and it looks like there is a minor leak somewhere aswell... Does this mean you are "back for good"? Cheers, Jeremy. |
From: Aldo C. <da...@pe...> - 2011-03-23 15:22:52
|
On 23.03.2011 15:42, Jeremy White wrote: > I'm not sure the approach I use would help you as I draw the whole > screen (fonts, graphics, backgrounds etc). I've looked at this again, > and I think I've fixed the bug within Win32::GUI. You mentioned that you > built Win32::GUI from scratch, so if you replace the DestroyWindow > method in GUI.xs (around line 2231) with the code below it should fix > things for you... I think this would be better placed in the Perlud_free() function found in GUI_Helpers.cpp. this is automatically called upon WM_QUIT message for all windows created by Win32::GUI, so you don't even need to relay on Perl calling DESTROY on objects. if you want, I can commit this to CVS as soon as I get to setup my dev. environment :-) cheers, Aldo |
From: Jeremy W. <jez...@ho...> - 2011-03-23 14:42:44
|
> One more thing - maybe important. This background color problem is not > neccesary connected with a memory. I think that maybe the bigger problem is > that it rises the GDI object counter. Please compare difference between Perl8 > and Perl10 - in Perl 5.8 in principle the memory is stable whereas in Perl10 > it blows up. The memory issue you are seeing in 5.10 is a perl bug (my understanding). When GDI handles aren't released they can use a significant amount of memory . > Jeremy, how you manage the beckground problem? May you scatch it? I'm not sure the approach I use would help you as I draw the whole screen (fonts, graphics, backgrounds etc). I've looked at this again, and I think I've fixed the bug within Win32::GUI. You mentioned that you built Win32::GUI from scratch, so if you replace the DestroyWindow method in GUI.xs (around line 2231) with the code below it should fix things for you... ########################################################################### # (@)INTERNAL:DestroyWindow()BOOLDestroyWindow(...)CODE: HWND handle; LPPERLWIN32GUI_USERDATA perlud; handle = (HWND) handle_From(NOTXSCALL ST(0)); perlud = (LPPERLWIN32GUI_USERDATA) GetWindowLong(handle, GWL_USERDATA); if(ValidUserData(perlud) ) { //free any resources...need to check other things like fonts etc if (perlud->hBackgroundBrush != NULL) { DeleteObject((HGDIOBJ) perlud->hBackgroundBrush); perlud->hBackgroundBrush = NULL; } } RETVAL = DestroyWindow(handle);OUTPUT: RETVAL |
From: Waldemar B. <wb...@sa...> - 2011-03-23 13:51:45
|
One more thing - maybe important. This background color problem is not neccesary connected with a memory. I think that maybe the bigger problem is that it rises the GDI object counter. Please compare difference between Perl8 and Perl10 - in Perl 5.8 in principle the memory is stable whereas in Perl10 it blows up. Jeremy, how you manage the beckground problem? May you scatch it? Waldemar |
From: Waldemar B. <wb...@sa...> - 2011-03-23 13:34:05
|
Dnia środa, 23 marca 2011 o 13:46:46 Jeremy White napisał(a): > > Probably I am mixing something. I wrote another variant of the script: > > > test.pl:> ##########################################> #!/usr/bin/perl > > -w> use strict;> use warnings;> use Win32::GUI qw();> my $i = 0; > > Ok:) as soon as I saw your code, I can see the problem...The problem is: > -background=>0xff00ffComment out those lines and you'll have no memory or > GDI leak...checkout this bug report on > sourceforge:http://sourceforge.net/tracker/?func=detail&aid=2864551&group_ > id=16572&atid=116572A while back I did try and fix this bug as I had the > same problem, but didn't find a quick fix (it's in XS/C not perl). If > possible, could you add your example to this bug report as someone might > fix it for the next release of Win32::GUI (several people have been hit by > this bug, and in your case it's fatal).As a work around, I draw the > text/background manually - which worked well in my case (as text > fields/labels wasn't the right design approach). Not sure if that could > work for you...Cheers,Jeremy. OK. Thank you very much! Now I know more and l lost the ilusion that something can be simple. But: 1. Stil my first example couses leak of memory in Perl 5.10 - I've just did it: after few hundred iterations it has took 250MB RAM - so it is another problem. You do - from this point of view - rightly working in Perl 5.8 version. 2. The problem of the background color is a serious one and nobody seems to workout it in a reasonable time horizon. It is a very, very bad news for me because one of the main method of my application is to inform a user about meaning of different numbers with differen by colors (which in turn can be defined by people themself). He he, I even did textfield's borders in color. Without all the color staff the applications will not be so talkative as they are now. Thank you for your help and comments! I thing the thread can be close. Waldemar. |
From: Jeremy W. <jez...@ho...> - 2011-03-23 12:48:28
|
> Probably I am mixing something. I wrote another variant of the script: > test.pl:> ##########################################> #!/usr/bin/perl -w> use strict;> use warnings;> use Win32::GUI qw();> my $i = 0; Ok:) as soon as I saw your code, I can see the problem...The problem is: -background=>0xff00ffComment out those lines and you'll have no memory or GDI leak...checkout this bug report on sourceforge:http://sourceforge.net/tracker/?func=detail&aid=2864551&group_id=16572&atid=116572A while back I did try and fix this bug as I had the same problem, but didn't find a quick fix (it's in XS/C not perl). If possible, could you add your example to this bug report as someone might fix it for the next release of Win32::GUI (several people have been hit by this bug, and in your case it's fatal).As a work around, I draw the text/background manually - which worked well in my case (as text fields/labels wasn't the right design approach). Not sure if that could work for you...Cheers,Jeremy. |
From: Waldemar B. <wb...@sa...> - 2011-03-23 12:37:03
|
Jeremy I've forgotten to send it to the list so it is the second copy... Dnia środa, 23 marca 2011 o 11:22:52 napisałeś: > > > Vista and Windows 7 have larger default values, but you really need to > > > work out why you are using so many GDI objects. It shouldn't be that > > > high... > > > > I use about 1000 them in my biggest window - it is a table 12x20 of > > textfields plus their borders (I do them independently - I wanted to > > have them in color and of various width), some buttons width pictures on > > them, that's it. All my window cascade can have about 2000-3000 GUI > > objects maximum.. > > Could you send me a screenshot of this window so I can understand? Text > fields shouldn't use any GDI handles. So you draw your own boarders? Do > you reuse objects? Probably I am mixing something. I wrote another variant of the script: test.pl: ########################################## #!/usr/bin/perl -w use strict; use warnings; use Win32::GUI qw(); my $i = 0; while ( $i < 100 ) { $i++; { my $ch = Win32::GUI::Window->new( -name => "ch1", -text => "child window", -pos => [ 100+10*$i %800, 50 ], -size => [ 300 , 250 ], -background=>0xffaaff, ); for ( my $j = 0; $j < 1000; $j++ ) { $ch->{"lab_$j"} = $ch->AddLabel( -name => 'ch1_'.$j, -text => 'ch1_'.$j, -pos => [ 10, 0 ], -size => [ 300, 50 ], -background=>0xff00ff, ); } $ch->Show(); print "$i:\t",$ch,"\n"; undef $ch; } } $i=0; Win32::GUI::Dialog(); __END__ ################################# and on the site: http://sao.pl/win32-gui/ are images of my screen. The description is here: The Perl script "test.pl" was performed on my windows XP machine (virtual one, but I have the same results on 'true' Windows 7 64 bits host machine (HP laptop machine), I put the results from vitual machine because gimp can easier catch the result - at least I can do that :) Moreover: The error_1.png shows that there are 52074 GDI objects when the iteration 52 was performed. Everything is reasnable: 52 iteration steps times 1000 labels in each iteration gives 52000. Plus start objects and so on. The error_2.png is just after catastrophy. The error_3.png shows after script has finished. The error_4.png shows that screen refreshing is gradual: task bar is partially restored. Say it something to you? > I think there was a bug fixed in Perl which is why you are finding the > problem in some versions and not in others. But this is conneced only with the memory, NOT with the number of GDI objects. Besides strange is that in versions 5.8.8 and 5.8.9 (activestate and compiled) this memory issue does not apear whereas on 5.10th version does. > GDI objects do auto delete > when they go out of scope (at least they do for me). I thought that in my demo script it should be deleted after each iteration step. Maybe my script is errored. Please correct it. It is extremally simple so everything can be done! > I can create millions > of GDI objects during the run of my application. At this stage, I think > its a bug in your code or a design issue where you keeping hold of GDI > objects. See the upper remark - what there should be corrected? > In hindsight I would have looked more closely at wxPerl (for cross platform > support) but I am happy with Win32::GUI. As it's built in C and hits the > Win32 API directly you can do things that other GUI frameworks can't. I'm > doing some interesting things with threads that you would struggle to do > even in C#. Generally threads are not connected with GUI so other GUI versions in Perl are good too. I agree that this additionally graphic libraries in Win32-GUI are big advantages of Win32-GUI. But in my case when I do program for every-day managing SQL databases by many user simultaniously, the possibility to run program on three main systems: Windows, Linux and www-Browser in identical way is quite usefull for organizations (write one time and use everywhere). My idea seems to by similar to java, but in fact it is not - My goal is to write an application using very, very high script language and without any compilation of any kind. If you add command to the script the change works at once - like writing CGI scripts, but without any risk of errors (in the database). Better is to compare my scripts to html not to cgi, but not so long in si OK stop it. > Ok, to solve this we need to find out where and why you are using so many > GDI handles? Could you send screenshots/examples of your code where you > draw to the screen? As I said, point your brawser to http://sao.pl/win32-gui/ Thank you Waldemar PS. I've read Aldo remarks very carefully. Thank you! I have found the considerations before and already tried to use it but nothing had changed. I think that it is a different issue. |