Робочий набір приватних байтів VS в Провіднику процесів


39

Я знаю, що робочий набір - це фактичний об'єм пам'яті, який процес використовує, а також, що приватні байти - це кількість, відведена на всякий випадок, якщо йому потрібно більше.

Тож я би додав два, щоб зрозуміти, скільки пам’яті СУЧАСНО забирається з інших процесів у системі?

Відповіді:


52

Боюся, це не зовсім так просто. Зокрема, приватні байти не дуже корисні для відповіді на поставлене вами питання.

Перше, що потрібно пам’ятати, це те, що сторінка пам’яті може існувати в основній пам’яті або у зовнішньому сховищі (в ці дні «пейджинговий диск» або «своп»). Друга полягає в тому, що процес матиме приватні сторінки пам’яті за своїм слідом, але також використовуватиме об’єкти на спільних сторінках, які інші процеси використовують одночасно.

Робочий набір - це розмір сторінок, що належать до процесу, які наразі зберігаються в основній пам'яті. Коли сторінка пам'яті, яка використовується процесом, переміщується у файл сторінки, вона видаляється з метрики робочого набору, а коли її викликається в основну пам'ять, її додають знову.

Робочий набір не стосується виключно пам’яті, якою володіє ваш процес. процеси використовують багато об'єктів спільної пам'яті, і розмір цих об'єктів відображається в stat. на жаль, коли два процеси ділять об'єкт 1 Мб, обидва їх процеси показують розподіл 1 МБ у робочому наборі, тож якщо ви додали всі робочі набори, об’єкт 1 Мб записувався б двічі, тому накопичення всіх ваших розмірів робочого набору може в крайньому випадку, здається, перевищують розмір наявного барана. дивіться більше тут: http://cybernetnews.com/cybernotes-windows-memory-usage-explained/

Приватні байти посилаються на кількість простору файлу сторінки, який виділяється процесу (не обов'язково використовується) у випадку, якщо слід приватної пам’яті процесу повністю завантажений під час заміни. більшість часу процес не є повністю (або взагалі) резидентом файлових сторінок, тому, як видається, приватні байти мають "місце" для подальшого розподілу. Однак це не так.

Однак приватні байти стосуються лише приватної пам'яті процесів, тому це значення може не відображати спільні ресурси (навіть якщо спільний ресурс зараз використовується лише цим процесом).

"Робочий набір Приватний" ("WS Private Bytes" або "Private WS" в провіднику процесів залежно від версії), мабуть, найкращий показник для вашого використання. це не стосується файлів сторінки, тому ви отримуєте точне уявлення про процеси, які впливають на ваш фізичний таран, і він не вдвічі рахує спільних об'єктів. спільні об'єкти розміщуються один раз (лише для процесу, який їх створив), але це також означає, що з точки зору одночасного процесу ви не записуєте, що ваш процес використовує спільні об'єкти, створені іншим процесом, тому ваш процес може використовувати більше оперативної пам’яті для іншого машина або в ситуації, коли потрібно було створити спільний об'єкт сам, а не використовувати інший примірник цього процесу. Менеджер завдань Windows використовує робочий набір приватний як метрику використання пам'яті.

сподівання, що допомагає


1
Тож я би вірно сказав, що "Приватні байти" - це скільки пам'яті запитував процес, а "Робочий набір" - це приватні байти плюс трохи додаткової спільної пам'яті, яку можуть використовувати інші процеси? А також "Приватний робочий набір" - це кількість приватної пам’яті, яка зараз перебуває у фізичній оперативній пам’яті, що є найбільш точним відображенням того, скільки пам'яті вона фактично використовує?
Скандаліст

4
так, досить багато. якщо ви турбуєтесь про безкоштовний приватний робочий набір ram - це шлях. якщо ви турбуєтесь про файл-файл або повну передачу (ram + віртуальна пам'ять) приватних байтів - це хороший показник.
Френк Томас

"Приватні байти" - це виділений процесом приватний віртуальний адресний простір. Частина цього може бути у файлі сторінки, частина - в оперативній пам’яті, десь в обох місцях, деякі - можливо, більшість - можуть взагалі не мати фізичного зберігання (поки що). Це внесок цього процесу в загальний "платний збір" системи. "Приватний робочий набір" - це підмножина "приватних байтів", що знаходиться в оперативній пам'яті. nb: Ви не знайдете "приватних байтів" або нічого подібного на дисплеях RAMmap, оскільки RAMmap стосується лише фізичної пам'яті (ОЗУ), а не віртуальної.
Джеймі Ханрахан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.