Jump to content

The 16bit heaps expander thread


Recommended Posts

That is exactly what has been bugging me for years!

Windows 2000 onwards will run many of the apps that run on 9x.

However, they don't have the same kind of resources issues.

So... It is technically possible...

Wrong analogy. There are also plenty apps that run on w2k and onwards but will never run on win9x by design. Kernel modifications like KernelEx don't change this.

The analogy was a correct one, I believe.

All applications suffering from the GDI resource limits on Windows 98 are working on Windows 2000 with no apparent GDI shortages. The applications designed for just Windows 2000 are not a problem, since they do not work in Windows 98.

The thread adresses Windows 98 and compatible applications related problems. Applications not compatible with Windows 98 are out of the scope, in my opinion.

Link to comment
Share on other sites


All applications suffering from the GDI resource limits on Windows 98 are working on Windows 2000 with no apparent GDI shortages. The applications designed for just Windows 2000 are not a problem, since they do not work in Windows 98.

The thread adresses Windows 98 and compatible applications related problems. Applications not compatible with Windows 98 are out of the scope, in my opinion.

This thread is not about any apps but about 16bit resources limitation (64Kb) in Win9x. A limitation that doesn't exist in Win2k. That's why you can't compare them even when running the same software.

Link to comment
Share on other sites

A limitation that doesn't exist in Win2k. That's why you can't compare them even when running the same software.

Sorry, but it in fact does exist. The NT family OSes instance an USER heap and a GDI heap on a per application basis.

If they did not, they wouldn't be able to run Win 9x/ME applications. So, provided you find a really badly resources leaking application, you'll be able to see it crash, even on Win XP. You'll probably have to write such an app on purpose, however, because AFAIK there is no known app able to do it. But possible it sure is. :yes:

Edited by dencorso
Link to comment
Share on other sites

...The NT family OSes instance an USER heap and a GDI heap on a per application basis...

So there it is in a nutshell!

To paint a picture:

If the shell in Windows 9x was replaced by a single application and then Windows started, it would be like running an app on a NT OS...

All the resource heaps exclusively available to that app.

There is a significant architectural difference between shared heaps and per app heaps...

Link to comment
Share on other sites

And dencorso... your system tray is an abomination. ^_^ Mine has two icons, and that's two too-many. The speaker icon (which I leave just so I always have one thing, because truthfully an empty system tray is weird) and ZoneAlarm. The only other thing I have run at startup is TweakUI.

Well, on WinXP I have more than 30 icons in tray :) In worst times when I was choosing dictionary and sheduler and was trying several alternatives it was more than 40 icons :). Few weeks ago I garbaged my desktop so, there was no place for new icons (32x32 icons, 1280x1024 desktop) :) And it wasn't on purpose.

Link to comment
Share on other sites

Of course, I've got many real programs in start-up that do IMHO useful things, like Pop Up Killer 1.45.5, HDDHealth 2.1 and Disk Space Monitor 1.0b4 ... At any moment, from start-up onwards, I have at least 16 icons in the system tray. I've trimmed my start-up configuration to the limit. I can't do without any of the programs in the tray. I need the things they do.
If I may suggest TrayIcon for even further "trimming" of your tray icon numbers, consumes very little resources...

It is only a list of shortcuts that loads in the Tray. From there you can start any program/Windows function/screen saver you wish.

Cannnot find it on the net anymore, so here it is...

* TrayIcon v2.5 32-bit for Windows 9x/NT4/2000/ME/XP/2003 creates, modifies, removes + reorders Tray Icons (single-click system Tray shortcuts) for any Windows/DOS program, app, game, screen saver, Windows function etc, changes icons to any valid icon file/library/executable/bitmap, highly customizable:

http://www.mdgx.com/files/TRAYICON.TXT

Direct download [124 KB, uncrippled, no nag shareware]:

http://www.mdgx.com/files/TI25.ZIP

Enjoy.

Link to comment
Share on other sites

I've just installed RP9. I did a full install. I am not using any skin, nor 32-bit icons at the moment, but I'm using ClearType. Here're my first impressions:

Before RP9, just after system startup: 57% USER resources & 82% GDI resources.

After RP9, just after system startup: 71% USER resources & 81% GDI resources.

And the resource drain is much slower, and resource recovery (after working for some time and then closing every aplication that was not open just after startup) is much better.

Wow! :w00t: Wonderful! :thumbup

Thanks a whole lot Tihiy! Keep on the great work! You rock! :wacko:

Well I am just trying RP9 right now and I don't see any difference at all. :wacko:

I have tried full install and also minimal install and there is no visible difference that I can see. :angry:

But RP9 as a whole does not seem to work at all here I must say. :realmad:

Maybe that's because I am using Windows ME :whistle:

Link to comment
Share on other sites

Well I am just trying RP9 right now and I don't see any difference at all.
That's the best result i could expect!

I'm thinking to revive GDI heap expander i had.

But there had to be a reason for it to be.

The simplest idea idea i half-baked in my expander is to move un-selected GDI objects out of the 16-bit heap. To achieve that, GDI functions are modified in such matter that GDI objects 16-bit data is copied into my 32-bit heap and de-allocated.

When selected, object is allocated back into 16-bit heap and data is moved.

That opens possibility to have virtually unlimited number of unselected GDI objects. In theory.

In practice, most objects can't be moved from 16-bit heap, since they are allocate data in global memory (which is also quite limited), and references to them are stored in other places, like display driver.

But, to the certain extent, this technology can improve GDI usage. For example, in Opera, most graphic data is stored in GDI DIB sections and can be moved and i expect heap expander will greatly improve situation.

But it won't help in other cases. It won't give you power to open myriad of apps.

So is it worth it? Tell me scenarios you lack resources in.

Link to comment
Share on other sites

@ Tihiy : The applications I mostly use are : Firefox 1.5.0.1, Azureus 2.5.0.0, ICQ 5.0 and WinAmp 2.91. Sometimes the resources get totally depleted so that closing all apps helps only for a while and restart is unavoidable. In my case, Azureus and Firefox suck all the resources, that is for sure. So a patch would be worth it for me ! :hello:

The resources are the only thing that bugs me about Windows 98 and make me play with the thought migrating to XP ... but Im not a kamikaze. :D

Link to comment
Share on other sites

The thing is, Tihiy, that RP9 does install and uninstall, but when it is installed it does not seem to work, I mean I can't load a skin for example. Skins are listed (but I don't think displayed properly) in the config panel but selecting one and clicking apply or OK yelds nothing. Same goes for everything else I tried. So I was not sure it was working at all, including your User and GDI optimizations.

And I am not sure I understand why no change in the resource usage is the best you could expect as dencorso seem to have positive results. Maybe you've understood it as my resource usage remaining constant after some use of the OS. If so that's not the case. RP9 is installed but everything seems to behave as if it wasn't there. Maybe that's all off topic here and I should post it in the in the RP9 thread.

As for reviving the GDI expander you had worked on, I think it is certainly a good idea but perhaps without an equivalent User expander it does not make too much sense, as it's the User resources that seem to always be depleted the most here.

You know better anyway if you want to spend time and efforts on that or not. If it's lot of work for at best very little expected results, then there is perhaps no point in it.

I'd be just glad right now if I could get the same boon as dencorso does.

Link to comment
Share on other sites

I have tried full install and also minimal install and there is no visible difference that I can see. :angry:

But RP9 as a whole does not seem to work at all here I must say. :realmad:

Maybe that's because I am using Windows ME :whistle:

AFAI had understood, RP9 ought to work equally well on 98SE and ME.

BTW, what's the difference between full and minimal? What doesn't get installed in minimal?

Link to comment
Share on other sites

But it won't help in other cases. It won't give you power to open myriad of apps.

So is it worth it? Tell me scenarios you lack resources in.

I've got two scenarios, of the critical system resource depletion.

1) The bad flash web contents code does allocate more and more system resources. The same web pages are causing resource depletion on many different browsers. The best defence is to lock the URL the fault causing flash contents is comming from.

2) A faulty application has some sort of a resource draining bug in the report manager function. Every time a certain reports are being created 2-5% of system resources are being locked in Windows 98. However, there are no problem in Windows 2000. I'm suspecting the report manager function has it's own resource table assigned. So, every time it is oppened a new resource table is created. The application manufacturer does not want to deal with this kind of a problem, as they do not want to accept any bug reports with just the Windows 98 in them. The only bug I can report in Windows 2000 is a small memory leak (less than a 100kB locked with every report manager session).

It is enough to run the report manager about 10 times on Windows 98 to get the system unstable, or locked. Appart from the resource leak it does allocate over 40% of the system resources when working, as well. On the other hand, on Windows 2000 the application worked correctly after 500 iterations of the report manager sessions. The only side effect was about 50MB of memory being locked.

In the end all I can do is to tell to the Windows 98 users to close the application after every few reports.

So, in my case, the ability to displace the forgotten resource entries to some other table, would significantly increase the Windows 98 stability.

Edited by Sfor
Link to comment
Share on other sites

I guess browsers are generally resource-hungry. In my case, it's SlimBrowser that eats up a lot of resources with each open page and it won't free them when a page (tab) is closed; possibly not freeing all allocated resources even when closed.

Another one for me is the official eMule, which - when open - only allows me either Miranda or SlimBrowser, but not both.

Most likely off-topic, but since I'm here, I'd like to ask if there's anybody else getting "Error: not enough memory" in Nero 7.0.0.0 when trying to burn a DVD (haven't tried CDs) with 512MB of RAM. This is because Nero used to work fine with only 256MB and coincidentally (or not) it started throwing such error right after me upgrading the RAM to 512MB. It does work fine despite that error, but it's annoying having to confirm the message box on each burn.

Tihiy, I'll contact you sometime these days about this GDI heap topic.

Edited by Drugwash
Link to comment
Share on other sites

Most likely off-topic, but since I'm here, I'd like to ask if there's anybody else getting "Error: not enough memory" in Nero 7.0.0.0 when trying to burn a DVD (haven't tried CDs) with 512MB of RAM. This is because Nero used to work fine with only 256MB and coincidentally (or not) it started throwing such error right after me upgrading the RAM to 512MB. It does work fine despite that error, but it's annoying having to confirm the message box on each burn.
I never heard of such an error before. But, why not get back to 256 MiB temporarily, just to test whether more RAM is the origin of the problem?
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...