"Harald Armin Massa" <haraldarminmassa@xxxxxxxxx> writes: > Dave, > >> It's coming from direct dependencies on user32.dll (from which we use >> wsprintf()) and shell32.dll (from which we use SHGetSpecialFolderPath()) >> and is allocated when ResumeThread() is called to kickstart the new >> backend, > > why does every backend need its own heap for user32.dll or > shell32.dll? Wasn't the point of shared dlls to be shared? The Desktop Heap appears to be a place for processes belonging to the same "desktop" to allocate shared objects such as GUI elements. These are allocated in shared space so they can be manipulated by any process running in that "desktop". Why Shell32 and User32 are allocating space in there just to initialize themselves or handle these basic utility functions is a bit of a mystery. -- Gregory Stark EnterpriseDB http://www.enterprisedb.com ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match