help-emacs-windows
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [h-e-w] private bytes as vsize in w32.c system_process_attributes()


From: Mike Small
Subject: Re: [h-e-w] private bytes as vsize in w32.c system_process_attributes()
Date: Fri, 26 Oct 2012 10:59:19 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (berkeley-unix)

Eli Zaretskii <address@hidden> writes:

>> From: Mike Small <address@hidden>
>> 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
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]