Funny! I found out the same issue last week and ended up just uninstalling the driver (not sure how permanent that is, but I'd like to think it is). I thought I was going crazy - why I was hitting pagefile after 28 days of uptime but only using around 8/32 real GB of memory! I loaded up the ram viewer tool and was aghast - hundreds of thousands of zombie processes! Death by a thousand cuts!
Umm.. After spending some time getting my Visual Studio to build the FindZombieHandles-project (pre-built binary would have been nice) it immediately exists not enabling me to see all the zombie processes. I don't know how to code C# and can't really afford spending time to change the termination based on say pressing Esc-key.
Or you can run the findhandles program from a command prompt; probably easiest to get VS to open the project folder for you then shift-right-click to open cmd or powershell.
Some process names may be missing.
0 total zombie processes.
No zombies found. Maybe all software is working correctly, but I doubt it. More likely the zombie counting process failed for some reason. Please try again.
Pass -verbose to get full zombie names.
> 0 total zombie processes.
No zombies found. Maybe all software is working correctly, but I doubt it. More
likely the zombie counting process failed for some reason. Please try again.
Maybe iOS needs a defrag util.
"I don’t know why zombie processes consume that much RAM,
but it’s probably because there should never be enough of
them for that to matter."
Am I becoming an old curmudgeon or is understanding operating systems just not seen as necessary these days?
I'm curious as to what you think the 64 KB of memory is actually needed for?
The reason the memory is retained is so that it can be reported to the parent process why the process died (e.g. normal exit (error code 0), or failure, or killed by signal, etc), and retain enough information for simple diagnostic purposes. It is for that reason that page table mappings (for the little memory that is retained) and private data (for process exit status etc) is kept.
But zombie processes aren't everywhere. Typically they exist briefly and then get cleaned up. So even if they could take up 4 bytes, nobody's bothered writing the code to make them do that, because what's the point? If they take up 64KBytes it's just not a very pressing problem.
The point is that there are always tradeoffs, whose resolution is affected by how important an issue is perceived to be.
What you've written doesn't even rate "curmudgeon" status, it's just silly. I suggest that you read the author's work a little more thoroughly and then question whether your assumption that the author does not understand operating systems is correct.