Testlimit и память. В этой статье я покажу вам как использовать утилиту testlimit для экспериментов с памятью. Она позволяет выделять блоки памяти.

Testlimit и память

Testlimit — это утилита командной строки, которую можно использовать для стресс-тестирования вашего ПК путем моделирования условий нехватки ресурсов для памяти, дескрипторов, процессов, потоков и другого. Мы будем её использовать для выделения зарезервированной и подтверждённой памяти.

Выделение зарезервированной памяти

Во-первых запустим окно командной строки и выполним нашу утилиту с опциями -r 1 -c 800. Это действие выделит 800 MB зарезервированной виртуальной памяти. Обратите внимание, в 64 разрядной системе нужно запускать Testlimit64.exe.

>Testlimit64.exe -r 1 -c 800

Testlimit v5.24 - test Windows limits
Copyright (C) 2012-2015 Mark Russinovich
Sysinternals - www.sysinternals.com

Process ID: 6952

Из вывода утилиты мы можем заметить PID запущенного процесса, который равен 6952.

Следующим шагом исследуем созданный процесс в диспетчере задач. Перейдем на вкладку «Подробности» и добавим столбец «Выделенная память» (Commit Size). Затем найдем наш процесс:

Когда мы выделили 800 MB зарезервированной виртуальной памяти, то на самом деле мы использовали всего 1 MB физической. Такой процесс резервирования памяти облегчает создание процессов, так как не нужно выделять сразу всю память для процесса. Процесс получит эту память, только если она ему потребуется.

Выделение подтверждённой памяти

Теперь выделим подтвержденную память, для этого используем опции -m 1 -c 800.

>Testlimit64.exe -m 1 -c 800

Testlimit v5.24 - test Windows limits
Copyright (C) 2012-2015 Mark Russinovich
Sysinternals - www.sysinternals.com

Process ID: 6064

Здесь был запущен процесс с PID = 6064. Посмотрим на него в диспетчере задач:

Как видим, при выделении 800MB подтверждённой памяти было выделено примерно 800MB.

Из этого эксперимента видна разница между резервированием и подтверждением памяти.

При резервировании памяти, если бы процесс стал записывать в свои 800 MB какие-то данные, то система бы постепенно выделяла ему дополнительную память из зарезервированной.

А при выделении и подтверждении процесс стразу получил 800 MB физической памяти. И даже если он их никогда не заполнит, они все равно будут считаться занятыми.


Вернуться к оглавлению

Сводка
Testlimit и память
Имя статьи
Testlimit и память
Описание
Testlimit и память. В этой статье я покажу вам как использовать утилиту testlimit для экспериментов с памятью. Она позволяет выделять блоки памяти

2 Replies to “Testlimit и память”

  1. Testlimit64.exe -m 1 -c 800
    забирает у ОС свободную память для процесса, но физическая при этом все еще свободная пока страницы нетронуты. см. Working Set — это именно размер физ. памяти заняты процессом.

    чтобы занять физ. память, нужно запустить утилиту с параметром -d:
    Testlimit64.exe -d 1 -c 800
    при этом аллоцируется 800 мб памяти у ОС и выделяется физ. память.
    это все легко отслеживается через Process Explorer или Process Hacker

    1. Да, вы правы:
      * Testlimit64.exe -r -резервирует память для процесса
      * Testlimit64.exe -m — выделяет память для процесса, но не использует физическую память (как я понимаю, ничем не заполняет выделенную память)
      * Testlimit64.exe -d — выделяет память для процесса и использует физическую память (начинает что-то записывать в память)
      Позже поправлю это в статье.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *