From WikiChip
Editing resident set size
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | |||
The '''resident set size''' ('''RSS''') is the amount of space of [[physical memory]] (RAM) held by a [[process]]. The value is typically specified in [[bytes]] or [[pages]]. If the full amount of space required by a process exceeds the RSS, the remaining portion is typically stored in [[swap]]. Collectively, the total amount is the [[virtual set size]]. | The '''resident set size''' ('''RSS''') is the amount of space of [[physical memory]] (RAM) held by a [[process]]. The value is typically specified in [[bytes]] or [[pages]]. If the full amount of space required by a process exceeds the RSS, the remaining portion is typically stored in [[swap]]. Collectively, the total amount is the [[virtual set size]]. | ||
Line 5: | Line 4: | ||
== Overview == | == Overview == | ||
− | In well-configured operating system, the RSS, which is typically specified in [[pages]], should equal the process' [[working set size|working set]]. Because the exact [[working set size]] often cannot be calculated, a | + | In well-configured operating system, the RSS, which is typically specified in [[pages]], should equal the process' [[working set size|working set]]. Because the exact [[working set size]] often cannot be calculated, a processes usually have more pages than needed for its working set. While most systems today do not employee a working-set model due to its lack of accurate information about the reference pattern of a process, they do keep track of the resident set size. The use of RSS is often used in making decisions on whether the system had enough space to swap the process when it entered the [[ready queue]]. |
== Current RSS == | == Current RSS == | ||
Line 27: | Line 26: | ||
PROCESS_MEMORY_COUNTERS memCounter; | PROCESS_MEMORY_COUNTERS memCounter; | ||
if (GetProcessMemoryInfo(GetCurrentProcess(), &memCounter, sizeof memCounter)) | if (GetProcessMemoryInfo(GetCurrentProcess(), &memCounter, sizeof memCounter)) | ||
− | return (size_t) | + | return (size_t)info.WorkingSetSize; |
return (size_t)0; /* get process mem info failed */ | return (size_t)0; /* get process mem info failed */ | ||
} | } | ||
Line 61: | Line 60: | ||
PROCESS_MEMORY_COUNTERS memCounter; | PROCESS_MEMORY_COUNTERS memCounter; | ||
if (GetProcessMemoryInfo(GetCurrentProcess(), &memCounter, sizeof memCounter)) | if (GetProcessMemoryInfo(GetCurrentProcess(), &memCounter, sizeof memCounter)) | ||
− | return (size_t) | + | return (size_t)info.PeakWorkingSetSize; |
return (size_t)0; /* get process mem info failed */ | return (size_t)0; /* get process mem info failed */ | ||
} | } | ||
</source> | </source> | ||
− | |||
=== OS X === | === OS X === | ||
Retrieving the peak RSS can be achieved in a very similar way to retrieving the current RSS. | Retrieving the peak RSS can be achieved in a very similar way to retrieving the current RSS. |