I have been experiencing this problem for a while now. I'm on Windows 10 v1909. Whenever I have an Explorer window open, the memory (here indicated in private bytes - I know that doesn't reflect every aspect of the memory usage of the process) that the process takes would slowly consume all of my system's memory. In some extreme cases, it would consume a whole 7GB of my PC's memory and to make anything usable again I have to kill it.
Image may be NSFW.
Clik here to view.
These are what I've tried so far:
- Running
sfc /scannow
: nothing is corrupted. - Disconnecting all mapped network drives: Nothing changed. (This used to be a problem for me in the past because I would map several shares on ephemeral systems and when those were wiped Explorer would hang and freeze)
- Stopping and removing suspicious apps that I've installed recently: Problem still persists. I have Google Drive File Stream and Winaero Tweaker installed. I suspect GDFS subst'd drive would cause problems but it turns out it didn't.
- Try to clear working sets with Sysinternals' RAMMAP. This proved to be useful because Explorer memory usage seemingly "cleared out", but then it would begin to consume memory again if a window was left open.
These are what I've observed:
- I've even gone so far as to verify the digital signature of explorer binary and shcore.dll (more on this below) myself, but they are still perfectly OK, this ruled out any chance of executables would be modified.
- Among the threads that Explorer created (around 50-60 of them), there's only one that constantly uses up processing time - not much, but every so often it would cause a small spike (the screenshot above).
- The function that is on the top of its stack is a (possibly) undocumented function from
shcore.dll
, which is referred to by its ordinal 172 (refer to the image below), but I think this behavior is normal since my laptop (v1909 too) also does this.
Image may be NSFW.
Clik here to view.
There is another question here that seems to have the same problem as mine but is still unanswered. I tried to take a memory dump of the process because I figured that might help to investigate what's occupied, but I don't have any experience investigating dumps or using WinDbg, although I could see the memory contents. I could provide the dump and record the trace if needed. Explorer has been a core system file, so it would be hard to believe it has bugs, moreover, I couldn't find anything related to excessive memory usage as listed in Windows 10's v1909 Known Issues page.
Update 1:
This problematic behavior is persistent across reboots, and only seem to be severe when I have an Explorer window open (memory consumption rises rapidly); when there are no Explorer windows open, its memory consumption is stable.
Update 2:
As per @Didier comments, I tried Process Hacker instead of Process Explorer and made additional observations. I can see a memory allocation for a module, named igdusc64
, that is constantly expanding under the Memory tab. A quick inspection of the file revealed it is a shader compiler library, and it is related to the Intel graphics driver (which makes sense, since my machine has an Intel CPU and no discrete GPUs).
I tried to remove the driver (rolls back to Microsoft basic display driver), reboot the machine. The problem seems to not be as worse, but it definitely doesn't go anywhere. Explorer still hogs the memory, and now nothing is changing in the Memory tab anymore (biggest allocated chunks are now Heap segments); this makes me wonder if Explorer is trying to draw something (could be an icon?) and gets stuck in the process.
Update 3:
I tried turning off all Visual Effects (in Advanced System Settings) and the problem seems to be gone. I'm still not sure if Explorer does not consume memory anymore or if it still does but at a very slow rate, so I guess I'll leave it for another 24 hours to conclude.