Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Slow EGTBs

Author: Robert Hyatt

Date: 07:26:17 01/17/03

Go up one level in this thread


On January 17, 2003 at 02:38:56, Scott Gasch wrote:

>On January 17, 2003 at 01:02:26, Robert Hyatt wrote:
>
>>On January 16, 2003 at 16:36:27, Scott Gasch wrote:
>>
>>>>According to perfmon, in the first second or so, there are some page faults, but
>>>>as soon as everything is "up and running", it stays flat on zero. So I guess
>>>>that's not the problem. I/O read bytes is maxed to 100, scale 1,000. I didn't
>>>>try the others. What is "working set"?
>>>>
>>>
>>>Working set is the number of bytes that the memory manager keeps resident in
>>>memory.  Private bytes is the total number of private bytes allocated to your
>>>process.  If memory is tight the working set gets trimmed and pages get swapped
>>>out.
>>
>>
>>If a perfmon uses that term it is misused badly.
>>
>>Working set is the number of pages a process needs at any instant in time so
>>that it doesn't page unnecessarily.
>>
>>Resident set is the set of pages that are actually in memory at any instant
>>in time.
>>
>>The goal of the memory manager is to make the resident set size (which it can
>>control) equal to the working set size (which it can't control).  Or, for Unix,
>>to make the RS _slightly_ smaller than the WS so that the application pages
>>very slightly, which is an indication that the RS is not too big which would
>>waste memory.
>>
>>But someone is corrupting the terminology it seems...
>
>That or I simply don't know what I'm talking about.  Actually the people writing
>documentation at MS don't seem to have a consistent definition of Working Set
>either:
>
>From SetProcessWorkingSetSize (in MSDN): The working set of a process is the set
>of memory pages currently visible to the process in physical RAM memory. These
>pages are resident and available for an application to use without triggering a
>page fault. The size of the working set of a process is specified in bytes. The
>minimum and maximum working set sizes affect the virtual memory paging behavior
>of a process.
>



That is simply wrong, but it is not a fatal error.  :)


>From About Working Set (in Perfmon.exe): Working Set is the current size, in
>bytes, of the Working Set of this process. The Working Set is the set of memory
>pages touched recently by the threads in the process. If free memory in the
>computer is above a threshold, pages are left in the Working Set of a process
>even if they are not in use.  When free memory falls below a threshold, pages
>are trimmed from Working Sets. If they are needed they will then be soft-faulted
>back into the Working Set before leaving main memory.
>
>Scott

That last paragraph sounds a bit better, as it implies that a page can be in the
working
set but not in the formal resident set. IE the page is in memory, but the PAGE
VALID
bit is not set in the page table for that page.

But the first paragraph doesn't sound so hot...




This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.