Eli Zaretskii <e...@gnu.org> writes: >> From: Mike Small <sma...@panix.com> >> Date: Thu, 25 Oct 2012 16:39:05 -0400 >> >> I tried proced in emacs 23.3 under Windows XP and saw something I >> thought was unusual in its process information. Certain applications >> display with a significantly smaller VSize than RSS. I believe this is >> because system_process_attributes() in w32.c uses the PrivateUsage field >> from the PROCESS_MEMORY_COUNTERS_EX structure returned by >> get_process_memory_info(). PrivateUsage excludes memory shareable with >> other processes, say because it's from loaded dll segments. The following >> page >> suggests using >> MEMORYSTATUSEX.ullTotalVirtual - MEMORYSTATUSEX.ullAvailVirtual >> from GlobalMemoryStatusEx() for virtual size (see the Virtual Bytes row): >> http://msdn.microsoft.com/en-us/library/windows/desktop/aa965225%28v=vs.85%29.aspx#process_memory_performance_information >> >> Is the current choice intentional? > > Yes, it is. The intent is to display the VM signature of that > specific process. Bloating the number just because it maps in many > system DLLs doesn't seem like a good idea, especially since the RSS > column already tells you how much of the footprint is actually > resident.
Yeah, I guess showing private bytes might be more useful for some questions and some applications. It depends what you're running and what you expect from the number. If I look at a program (as I did) whose non-dll text and data segments are only comprised of the user interface code, and the libraries are the real guts of the application, then the private bytes definition for vsize is a bit unintuitive. If my question is, "what proportion of this application is in its working set," I don't like the private bytes definition much at all. If my question is, "my system is running low on swap space; which programs should I terminate," I like it better, though it's not perfect. But I only wanted to point this out in case it was an oversite. Now that I know what the number represents I'm not confused anymore. Maybe I'll change it locally to suit my preference. > > The VSize column was designed to show the same value as "Mem Usage" in > the Task Manager. This is one of the reasons I always use process explorer instead of task manager. It calls private bytes private bytes and the larger number that includes the shared dlls the virtual size. This seems like a good choice, to show both, since choosing one or the other is arbitrary and leaves out information. -- Mike Small sma...@panix.com