Як диспетчер завдань Windows 8 обчислює "вплив запуску" програм
Якщо ви користуєтеся Windows 8, ви, напевно, помітили, що новий диспетчер завдань має вкладку «Запуск» для керування програмами, завантаженими під час запуску. Він містить цікаву колонку "Вплив на запуск":
Я хотів би пояснити вам, що саме означають значення «впливу запуску» та як вони розраховуються для кожної програми.
Коли ви наводите вказівник миші на заголовок стовпця, диспетчер завдань показує нам, що означають значення цього стовпця за допомогою спливаючої підказки:
Точні значення впливу на швидкість запуску програм визначаються та класифікуються таким чином:
- Високий - програма використовує більше 1 секунди (тобто 1000 мілісекунд) часу ЦП або більше 3 МБ дискового вводу-виводу
- Середній - програма використовує від 300 до 1000 мс процесорного часу або від 300 КБ до 3 МБ дискового вводу-виводу
- Низька - програма використовує менше 300 мілісекунд центрального часу і менше 300 КБ дискового вводу-виводу
- Не вимірюється - означає, що програма не була запущена під час запуску. Зазвичай таке значення відображається для програм, які були видалені, але все ще можуть бути зареєстровані для запуску під час запуску. У цьому прикладі вище я видалив Windows Live Messenger, коли перейшов на Skype.
Як диспетчер завдань отримує ці значення для кожної програми під час запуску
Під капотом стовпця «Вплив на запуск» диспетчера завдань знаходиться WDI - Інфраструктура діагностики Windows.
Під час кожного запуску він відстежує програми запуску та створює файли журналів у такому місці:
C:\Windows\System32\wdi\LogFiles
Щоб отримати доступ до цього розташування, спершу потрібно відкрити розташування C:\Windows\System32\wdi. Провідник повідомить вам, що у вас немає доступу до папки. Натисніть «Продовжити», і вам буде показано вміст. Потім перейдіть до папки «LogFiles» всередині неї та знову натисніть «Продовжити».
The BootCKCL.etl файл буде створюватися при кожному запуску і містить усі дані, пов’язані із запуском програми. Я можу відкрити його за допомогою "Аналізатор продуктивності Windows", який постачається з Visual Studio 2012. Якщо у вас не встановлено Visual Studio 2012, ви можете встановити Комплект оцінки та розгортання Windows (ADK) щоб отримати аналізатор продуктивності Windows.
Використовуючи аналізатор продуктивності Windows, ми можемо побачити точні значення продуктивності запуску в поданні «Деталі»:
Як показано на скріншоті вище, Skype має більше 1 секунди процесорного часу, тому він оцінюється зі значенням «вплив запуску» «Високий».
Однак диспетчер завдань у Windows 8 не використовує BootCKCL.etl файл безпосередньо. Існує кілька звітів XML, які генеруються під час запуску на основі файлу BootCKCL.etl. Вони розташовані в C:\Windows\System32\wdi\LogFiles\StartupInfo папку та названий на честь ідентифікатора безпеки (SID) користувача.
Як отримати SID для облікового запису користувача
Ви можете отримати SID за допомогою такої команди:
wmic useraccount отримати ім'я, sid
Ви повинні відкрити командний рядок як адміністратор (використовуйте комбінацію клавіш Win+X), а потім введіть команду, згадану вище. Ви отримаєте щось подібне:
Для кожного SID є кілька файлів. Відкрийте найновіший файл, переглянувши їх стовпець «Дата зміни» та відповідний ідентифікатор SID. Ви побачите дані, які використовує диспетчер завдань, щоб показати вам значення впливу запуску. Вони дуже схожі на дані, що зберігаються в BootCKCL.etl файл.
Тепер ви знаєте, що саме означають значення стовпця «Вплив запуску», і можете використовувати його, щоб діагностувати, яка програма викликає повільний запуск. Поділіться з нами, які програми у вашій системі запускаються найповільніше (ті, які мають «високий» вплив).
Через Вадима Стеркіна