Jump to content

GDI Heap Extender


Recommended Posts

However, Tihiy didn't specifically say that setting the heap limit above 4M would cause a problem, simply that RP10 would default to 4M and that setting too high a limit may deplete selectors. How high a limit would cause problems is not specified, although we can infer that it is somewhere above 4M. Anyway, I'm still learning these old tricks and simply report my finding, that setting the limit to 8M (on two machines now) has made a noticeable improvement to stability.

Well, there is a problem... While I used 16M for both GDIMaxHeapSize and USERMaxHeapSize, I had this issue, which went away when I fell back to 4096. However, since RP calls the Windows native LDT cleanup when LDT is lower than 20%, you won't normally notice that issue, except for the red light. But it's much better to avoid having the LDT cleanup routine (which Tihiy deems not that effective anyway) called more sparingly, to avoid unnecessary system processing, so 4M is the best value to use for both.

A Suffusion of Red? ;)

Thanks for those numbers, Den. I've been using GDIMaxHeapSize=8192 on all my W98SE machines for some months now, to good effect. As for USERMaxHeapSize, I've not been able to set this anyway, from what I've read, this is a string variable in "HKCU\Control Panel\Desktop", yet there seems no effect whatever value is used for it.

Joe.

Link to comment
Share on other sites


A Suffusion of Red indeed! :D

USERMaxHeapSize does work, but it seems, most if not all our resource issues stem just from too little a GDIMaxHeapSize, so it seems to do nothing. And thanks for reporting 8M works! :thumbup I understand you've got no red light from it, right?

Link to comment
Share on other sites

most if not all our resource issues stem just from too little a GDIMaxHeapSize, so it seems to do nothing.

Here it's always been the user resources that have been the main problem and that's why I deeply regret Tihiy didn't finally implement user salvation in RP (as gdi salvation works wonders).

Btw, if you can get your hands on some copy of the old McAffee Nuts & Bolts utilities (sold under various names and packaging), you'll find in it the WinGauge monitoring utility, which is AFAIK (you'll let me know if this is wrong) the only utility showing separately the use of the 16bit and 32bit resource heaps. It also shows use of GDT and LDT (GDT is never an issue).

And Dencorso, I don't think it's accurate at all to say that too little a GDIMaxHeapSize is the main issue with resources as this the 32bit heap and when things go wrong, in my observation, it's always because of the depletion of the 16bit heaps which are limited to 64k.

Edited by loblo
Link to comment
Share on other sites

Thanks for the heads up about WinGauge, I'll try it soon. :thumbup

RP does have a rudimentary form of USER salvation. In its current form, RP does reduce the USER issue some.

But the full-fledged version of it that remains just a wish, regretably...

Revolutions Pack 9.5.0 RC

lol just 1 year for new release

<snip>

[General]

* New: RP has been re-architected and partially rewritten into C to improve reliability and performance

* New: system libraries shared memory (IAT) is protected from damaging

* New: a load of user32 functions were rewritten to reduce resource usage, improve system performance and stability

* Critical fix: parts of RP functionality could become disabled if shared libraries were swapped out

* Lots of minor changes

[uSER salvation]

* New: window properties are moved out of 64K heap, reducing USER resource usage

* New: SendMessage*/PostMessage* functions have limit on message count per thread to prevent resource drain

(and thus solve hangs after file operations, forever)

<snip>

[setup]

* Simplified; less options.

* Does not require GDI or USER updates anymore.

* Automatically updates DIBENG.DLL if needed.

Highlights of this release: bugfixes, USER resource usage, Windows 7 skin, RPConfig UI.

I wanna hear first adopters.

Link to comment
Share on other sites

A Suffusion of Red indeed! :D

USERMaxHeapSize does work, but it seems, most if not all our resource issues stem just from too little a GDIMaxHeapSize, so it seems to do nothing. And thanks for reporting 8M works! :thumbup I understand you've got no red light from it, right?

Well, I deleted RP due to its messing up my quick launch / task bar. So I can't say about the coloured lights, however, see below ...

Here it's always been the user resources that have been the main problem and that's why I deeply regret Tihiy didn't finally implement user salvation in RP (as gdi salvation works wonders).

Btw, if you can get your hands on some copy of the old McAffee Nuts & Bolts utilities (sold under various names and packaging), you'll find in it the WinGauge monitoring utility, which is AFAIK (you'll let me know if this is wrong) the only utility showing separately the use of the 16bit and 32bit resource heaps. It also shows use of GDT and LDT (GDT is never an issue).

And Dencorso, I don't think it's accurate at all to say that too little a GDIMaxHeapSize is the main issue with resources as this the 32bit heap and when things go wrong, in my observation, it's always because of the depletion of the 16bit heaps which are limited to 64k.

Well, I'd not heard of Mcafee "Nuts & Bolts" nor "WinGauge" before, however, I've managed to track down an evaluation copy at some academic/teaching site :

http://www.cbe.name/share.srf/tppmsgs/share.srf?changefolder=1&folder=%5C(03%BF%CE%BC%FE%CB%D8%B2%C4)%5C%B9%B2%CF%ED%C8%ED%BC%FE%5C%B9%B2%CF%ED%C8%ED%BC%FE%BF%E22%5C162

This file seems to have originally been available here (defunct URL) : http://download.mcafee.com/products/evaluation/nuts_and_bolts/english/win9x/NB0201AD.EXE

Anyway, after figuring out how to use "WinGauge" (wgpro32.exe), I'm impressed by the range of parameters it can monitor or report. Your assertion that the 16-bit GDI and User resources are most critical seems to be true. As I write this, the 16-bit versions are showing about 40% usage, whereas the 32-bit versions are showing less than 10% usage. However, resource leakage hasn't occurred (much) yet, so that situation may change. Also, GDT shows 1% usage and LDT shows 37% usage.

Joe.

Edited by jds
Link to comment
Share on other sites

  • 1 month later...

And Dencorso, I don't think it's accurate at all to say that too little a GDIMaxHeapSize is the main issue with resources as this the 32bit heap and when things go wrong, in my observation, it's always because of the depletion of the 16bit heaps which are limited to 64k.

Loblo, now that I've been able to try WinGauge on a number of occasions, I can confirm what you say. With my settings for GDIMaxHeapSize, it's always the 16 bit GDI or User resources that run out when W98 leaks.

Joe.

Edited by jds
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...