|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
SetProcessWorkingSetSize
The SetProcessWorkingSetSize function sets the minimum and maximum working set sizes for a specified process.
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.
BOOL SetProcessWorkingSetSize(
HANDLE hProcess, // open handle to the process of interest DWORD dwMinimumWorkingSetSize, // specifies minimum working set size DWORD dwMaximumWorkingSetSize // specifies maximum working set size );
Parameters
hProcess
An open handle to the process whose working set sizes will be set. Windows NT: The handle must have PROCESS_SET_QUOTA access rights. For more information, see Process Objects.
dwMinimumWorkingSetSize
Specifies a minimum working set size for the process. The virtual memory manager attempts to keep at least this much memory resident in the process whenever the process is active. If both dwMinimumWorkingSetSize and dwMaximumWorkingSetSize have the value 0xffffffff, the function temporarily trims the working set of the specified process to zero. This essentially swaps the process out of physical RAM memory.
dwMaximumWorkingSetSize
Specifies a maximum working set size for the process. The virtual memory manager attempts to keep no more than this much memory resident in the process whenever the process is active and memory is in short supply. If both dwMinimumWorkingSetSize and dwMaximumWorkingSetSize have the value 0xffffffff, the function temporarily trims the working set of the specified process to zero. This essentially swaps the process out of physical RAM memory.
Return Values
If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. Call GetLastError to obtain extended error information.
Remarks
The working set of the specified process can be emptied by specifying the value 0xffffffff for both the minimum and maximum working set sizes. If the values of either dwMinimumWorkingSetSize or dwMaximumWorkingSetSize are greater than the process' current working set sizes, the specified process must have the SE_INC_BASE_PRIORITY_NAME privilege. Users in the Administrators and Power Users groups generally have this privilege. For more information about security privileges, see Privileges.
The operating system allocates working set sizes on a first-come, first-served basis. For example, if an application successfully sets 40 megabytes as its minimum working set size on a 64-megabyte system, and a second application requests a 40-megabyte working set size, the operating system denies the second application's request. Using the SetProcessWorkingSetSize function to set an application's minimum and maximum working set sizes does not guarantee that the requested memory will be reserved, or that it will remain resident at all times. When the application is idle, or a low-memory situation causes a demand for memory, the operating system can reduce the application's working set. An application can use the VirtualLock function to lock ranges of the application's virtual address space in memory; however, that can potentially degrade the performance of the system.
When you increase the working set size of an application, you are taking away physical memory from the rest of the system. This can degrade the performance of other applications and the system as a whole. It can also lead to failures of operations that require physical memory to be present; for example, creating processes, threads, and kernel pool. Thus, you must use the SetProcessWorkingSetSize function carefully. You must always consider the performance of the whole system when you are designing an application.
See Also
GetProcessWorkingSetSize, VirtualLock
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
SetProcessWorkingSetSize
Функция SetProcessWorkingSetSize устанавливает минимум и максимум, прокладывающие установившее размеры для определенного процесса.
Работа установленная процесса - набор страниц памяти к настоящему времени видимый в процессе в физической памяти РАМ. Эти страницы - резидентные и доступные для приложения, чтобы не использовать запуская страничный дефект. Размер работы установленной процесса определен в байтах. Минимум и максимум, прокладывающие установившее размеры влиять на поведение подкачки виртуальной памяти процесса.
BOOL SetProcessWorkingSetSize(
РУЧКА hProcess, // открывает ручку в процесс интереса DWORD dwMinimumWorkingSetSize, // определяет минимум, прокладывающий установившее размер DWORD dwMaximumWorkingSetSize // определяет максимум, прокладывающий установившее размер );
Параметры
hProcess
Открытая ручка в процесс чья работа была установлена размеры будут установлены. Окно NT: ручка должна иметь права доступа PROCESS_SET_QUOTA. Более подробно, видьте как Процесс Возражал.
dwMinimumWorkingSetSize
Определяет минимум, прокладывающий установившее размер для процесса. Виртуальный менеджер памяти пытается держать по крайней мере этого значительно резидента памяти в процессе всякий раз, когда процесс активен. Если как dwMinimumWorkingSetSize так и dwMaximumWorkingSetSize имеет величину 0xffffffff, функция временно приспосабливает работу установленную определенного процесса в нуль. Это по существу меняет процесс из физической памяти РАМ.
dwMaximumWorkingSetSize
Определяет максимум, прокладывающий установившее размер для процесса. Виртуальный менеджер памяти пытается держать не более чем этого значительно резидента памяти в процессе всякий раз, когда процесс активен и память является короче говоря поставкой. Если как dwMinimumWorkingSetSize так и dwMaximumWorkingSetSize имеет величину 0xffffffff, функция временно приспосабливает работу установленную определенного процесса в нуль. Это по существу меняет процесс из физической памяти РАМ.
Обратные Величины
Если функция добивается успеха, обратная величина ненулевая. Если функция терпит неудачу, обратная величина нулевая. Назовите GetLastError, чтобы получать расширенную информацию ошибки.
Замечания
Работа установленная определенного процесса может быть emptied определяя величину 0xffffffff как для минимума так и максимума, прокладывающих установившее размеры. Если величины или dwMinimumWorkingSetSize или dwMaximumWorkingSetSize больше, чем процесс' течение, прокладывающее установившее размеры, определенный процесс должен иметь привилегию SE_INC_BASE_PRIORITY_NAME. Пользователи на Администраторах и Силовые группы Пользователей обычно имеют эту привилегию. Более подробно о привилегиях безопасности, смотри Привилегии.
Операционная система распределяет работу установившее размеры на сначала-приходить, сначала-served основа. Например, если приложение успешно устанавливает 40 мегабайтов как минимум, прокладывающий установившее размер в 64- мегабайтной системе, и приложение секунды запрашивает 40- мегабайт, прокладывающий установившее размер, операционная система запрещит второй прикладной запрос. Используя функцию SetProcessWorkingSetSize, чтобы устанавливать прикладной минимум и максимум, прокладывающие установившее размеры не гарантирует, что запрошенная память будет зарезервирована, или, что останется резидентом в любое время. Когда приложение является ожиданием, или низкая память ситуации вызывает спрос на память, операционная система может уменьшить установленную прикладную работу. Приложение может использовать функцию VirtualLock, чтобы запирать области прикладного виртуального пространства адреса в памяти; тем не менее, это может потенциально деградировать исполнение системы.
Когда Вы увеличиваете работу установившую размер приложения, Вы отнимаете физическую память из остальной части системы. Это может деградировать исполнение других приложений и система в целом. Это может также провести к неудачам операций, которые требуют память, чтобы присутствовать; например, создавая процессы, резьбу, и пул зерна. Таким образом, Вы должны использовать функцию SetProcessWorkingSetSize тщательно. Вы должны всегда рассматривать исполнение целой системы когда Вы разрабатываете приложение.
Смотри Также
GetProcessWorkingSetSize, VirtualLock
|
|
|
|
| |