Windows file analyzer как пользоваться

Обновлено: 08.07.2024

Новое в этой версии

Описание

  • Determines file type based on file content.
  • Explains what thousands of file types are used for.
  • Finds software that can open or otherwise handle exactly your type of file.

Дополнительные сведения

Издатель:

Авторские права

Copyright (C) 2020 Bitberry Software

Copyright (C) 2020 Bitberry Software

Разработчик:

Приблизительный размер

Возрастной рейтинг

Для всех возрастов

Это приложение может

Получать доступ ко всем вашим файлам, периферийным устройствам, приложениям, программам и реестру

Получать доступ ко всем вашим файлам, периферийным устройствам, приложениям, программам и реестру

Установка

Скачайте это приложение, не выходя из учетной записи Майкрософт, и установите его максимум на десяти устройствах с Windows 10.

Поддерживаемые языки

English (United es)

Сообщить в Майкрософт об этом приложении

Обстоятельства, при которых выявлено нарушение, и другая полезная информация.

Изучение автозагрузки Windows с помощью Windows Performance Analyzer

Вы видели новый диспетчер задач Windows? Сегодня я раскрою вам тайное знание о нем и покажу, как копаться в Windows с помощью разных диагностических программ.

Неделю назад Холмс без особых усилий вычислил причину автоматического запуска Skype с помощью Process Monitor. В Windows 8 и более новых ОС история об автозагрузке могла бы выйти немного другой. И дело тут даже не в том, что в этой ОС не устанавливается ОЕМ-утилита производителя ноутбука, ставшая причиной проблемы. Все намного интереснее!

Управление автозапуском в Windows

Для управления программами, стартующими вместе с системой, в Windows исторически служила утилита msconfig. Список программ формировался на основе содержимого папки «Автозагрузка» (shell:startup) и нескольких разделов реестра:

В Windows 8 этот принцип сохранился, но функция перешла к диспетчеру задач.

Новинкой же стало отображение информации о влиянии на скорость загрузки системы. Вероятно, по замыслу создателей Windows, эти сведения должны помочь людям при расчистке автозапуска. Я предлагаю вам залезть под капот Windows и разобраться, как все это работает.

Как присваивается степень влияния на запуск Windows

Диспетчер задач слегка приоткроет вам завесу над тайной, если навести курсор на заголовок столбца.

Конкретные параметры влияния на скорость запуска Windows таковы:

Давайте посмотрим, откуда диспетчер задач берет эти сведения.

Где хранятся результаты измерений

Имя папки Startup недвусмысленно намекало на ее содержимое. По указанному пути, действительно, обнаружилось несколько XML-файлов с примерно такими данными.

Очевидно, при запуске диспетчера задач происходит анализ XML-файла, соответствующего последней загрузке Windows. Затем сведения выводятся в упрощенном виде на вкладке «Автозагрузка». Если файлы удалить, степень влияния будет указываться как «Не измерено».

Как выполняются измерения

Уровнем выше, в папке LogFiles, оказались отчеты в формате ETL, в которых наряду с отчетом о загрузке Windows сохраняет также сведения о выключении системы и входе в нее.

В принципе, даже исходя из названия папки wdi, можно догадаться, как создаются отчеты. Аббревиатура означает Windows Diagnostics Infrastructure, т.е. инфраструктура диагностики Windows. Чтобы проверить предположение, я снова обратился к Process Monitor, на сей раз натравив его на папку wdi.

Мне даже не понадобилось перезагружать систему, поскольку утилита сразу зафиксировала в папке активность svchost.exe, хост-процесса для служб. Открыв в диспетчере задач вкладку «Подробности», я щелкнул правой кнопкой мыши по процессу с идентификатором 1144 и выбрал «Перейти к службам».

Служба политики диагностики запускается автоматически, а ее полное описание вы можете посмотреть в оснастке services.msc. При каждой загрузке Windows эта служба дожидается окончания автозапуска и сохраняет свежий отчет в формате ETL в папке C:WindowsSystem32wdiLogFiles. Файл может называться BootCKCL.etl или BootPerfDiagLogger.etl в зависимости от версии Windows. На его основе создаются записи в журнале Diagnostics-Performance. Кроме того, в Windows 8+ наряду с ETL появляются XML-файлы для диспетчера задач.

Знакомство с новой версией Windows Performance Analyzer

:)

Владельцы книги об ускорении загрузки Windows уже знакомы с предыдущей версией этого инструмента, поскольку именно с его помощью я разбирал этапы загрузки Windows 7. В Windows ADK средства диагностики и оценки производительности системы стали мощнее и… прекраснее

Впрочем, графический интерфейс WPA может отпугнуть новичков, поэтому я кратко расскажу о его основных функциях.

Загрузка и установка

Скачайте Windows ADK и установите средства для оценки производительности (выделены синим на рисунке).

После этого отчеты в формате ETL начнут открываться в WPA двойным щелчком.

Выбор графика и изменение вида отображаемых данных

Кстати, чтобы открыть график, можно перетащить его из панели Graph Explorer на кнопку новой вкладки.

В новом WPA появилась панель инструментов, упрощающая настройку вида графика и открывающая доступ к дополнительным параметрам.

  1. Выбранный вами график.
  2. Тип представления данных на графике. Звездочка указывает на то, что выбранный тип отличается от стандартного.
  3. Вид диаграммы.
  4. Редактор вида графиков, где можно задать отображаемые столбцы, а также параметры сортировки и группировки для них. Там же вы можете настроить фильтры, о которых я расскажу ниже.
  5. Вид окна, где у вас есть выбор между таблицей, диаграммой и их совместному отображению.

Выбор данных для отображения в таблице

В табличном режиме WPA показывает предустановленный набор данных для каждого типа графика, но его легко изменить. Вы можете щелкнуть по заголовку любого столбца правой кнопкой мыши и выбрать любой из доступных для графика параметров. А щелчок левой кнопкой мыши по заголовку столбца ожидаемо выполняет сортировку.

В сложных ситуациях помогут расширенные фильтры, набор которых соответствует списку доступных в таблице столбцов.

Учтите, что фильтры работают кумулятивно, т.е. стандартно используется условие AND. Показанный на рисунке выше набор бесполезен, но его легко скорректировать, добавив между фильтрами условие OR.

С помощью этого фильтра я и получил сокращенный список процессов, показанный на картинке выше с контекстным меню. Кстати, поиск запускается привычным сочетанием клавиш Ctrl + F, и условия в нем задаются аналогично.

Автозагрузка Windows сквозь призму WPA

В файле BootCKCL.etl содержится краткий отчет о загрузке, протоколирующий три компонента.

Напомню, что влияние программ на скорость запуска Windows оценивается на основе процессорного времени и объема дисковой активности. Отмечу, что я не нашел в отчете ETL именно тех значений, что указаны в XML-файлах для диспетчера задач, хотя картина аналогична. Остается предположить, что перед записью в XML производятся какие-то дополнительные вычисления.

Использование процессора

В графике CPU Usage (precise) я выбрал представление Utilization by Process, Thread, после чего отфильтровал ненужные процессы из таблицы и добавил столбец CPU Usage (ms).

Сравните эту картину с диспетчером задач на первом рисунке статьи. Выделенные процессы символизируют границы между тремя степенями влияния программ на скорость загрузки Windows. Похоже, не правда ли?

Дисковая активность

В графике Disk Usage я выбрал представление Utilization by Process, IO Type и добавил в таблице столбец Size.

Обратите внимание на процессы itype.exe (драйвер клавиатуры Microsoft) и Snagit32.exe. По нагрузке на CPU влияние этих программ на скорость запуска Windows можно оценивать как среднее. Однако именно из-за высокой дисковой активности им присвоена высокая степень влияния.

Дело об автозагрузке Windows в новом ракурсе

Помните, как Холмс просил Ватсона сделать лог загрузки с помощью Process Monitor? Если бы мисс Финли работала в Windows 8 или более новой системе, детектив смог бы дать ответ не просто быстрее, а моментально. Он бы сразу попросил прислать ему последний XML-файл с отчетом о загрузке!

Родительский процесс

Вы уже видели выше эту картинку, но теперь я выделил другие сведения: родительский процесс, его ИД и время запуска.

Согласитесь, что прислать крошечный текстовый файл можно намного быстрее, чем большой журнал загрузки Process Monitor. В принципе, чтобы решить проблему мисс Финли в Windows 7, Холмс мог бы обойтись и отчетом BootCKCL.etl, также находившемся на диске.

На графике Life by Process можно добавить столбцы Process ID и Parent Process ID, т.е. идентификаторы процесса и родительского процесса соответственно.

Поскольку ИД 2024 принадлежит процессу explorer.exe, выделенные программы запускаются классической оболочкой Windows из стандартных расположений автозагрузки.

Отложенная автозагрузка

В Windows 8 в очередной раз предпринята попытка снизить влияние программ в автозагрузке на скорость запуска системы. Достаточно перезагрузить систему, чтобы увидеть, как программы из автозагрузки начинают появляться только после отображения начального экрана и даже перехода на рабочий стол.

WPA очень наглядно отображает распределение автозагрузки программ по времени. Стоит добавить столбец Start (s), отфильтровать лишнее, и все будет видно как на ладони.

Процесс explorer.exe запустился через 21 секунду после старта Windows, но лишь спустя 15 секунд после него начали стартовать программы из автозагрузки, причем последняя из них запустилась только через 42 секунды.

Такое поведение невозможно нейтрализовать полностью, но можно значительно сократить задержку запуска программ, используя секретный параметр StartupDelayInMSec в пользовательском разделе реестра.

Конечно, найдутся люди, которых и это не устроит, но у них никто не отбирает возможность распределить автозагрузку по времени с помощью планировщика заданий! Холмс наглядно проедмонстрировал это в деле об автозагрузке Windows.

Рекомендации Microsoft разработчикам программ

;)

В Windows 8 появились различные улучшения, призванные продлить работу ноутбуков, ультрабуков и планшетов от батарей. Пожалуй, самым заметным новшеством являются современные приложения, которые отправляются «в сон», когда вы переключаетесь в другое окно. И да, эти приложения нельзя поместить в автозагрузку

В моей аудитории практически нет разработчиков, но я специально хочу рассказать вам о рекомендациях Microsoft относительно автозапуска программ. Ведь они рисуют Windows такой, какой ее хотели бы видеть создатели.



«Что не так с компьютером — в нём установлен накопитель nvme, но открытие проводника, если этого давно не делали, занимает примерно 10 секунд, открытие файла .zip на рабочем столе занимает примерно минуту, а при нажатии клавиши „Пуск“ реакции нужно ждать примерно 20 секунд?»


У explorer.exe есть много UI-потоков, поэтому это не значит, что повис весь процесс, однако, одно из его окон определённо зависло и вызывало зависания повсюду, а это плохо.

Далее надо было выяснить, что происходит. Данные CPU Usage (Sampled) (получаемые от профилировщика с сэмплированием 1 кГц) сообщили мне, что поток 9228 тратит примерно 99,7% своего времени (26994 из 27074 сэмплов) в деструкторе BatchPositionChangesHelper (строка 21) и его дочерних задачах (строки 23-25). Это очень затратный деструктор.


У меня нет доступа к этому исходному коду, но я немного поизучал стеки и они намекают, что explorer.exe тратил больше 20 секунд, выполняя множество задач, связанных… с выравниванием положения значков.

Ага, именно так

Выстраивание значков на Рабочем столе — довольно простая задача. Нужно просто выровнять их в столбцы, перейти к следующему столбцу и завершить работу, когда экраны заполнены. Поэтому 20 секунд на выстраивание значков не показалось мне реалистичным временем, и я предположил, что первопричиной может быть какое-нибудь странное расширение оболочки или другое стороннее ПО, но потом попробовал воспроизвести баг самым простым способом. Я подумал, что просто создам на Рабочем столе тысячу копий крошечного изображения .jpg и проверю, не будет ли explorer.exe тормозить. Этот эксперимент был слишком тупым, чтобы оказаться достаточным, но тем не менее:


Я запустил этот простой скрипт со значением file_count, равным 1000, и внезапно explorer.exe начал безумно тормозить более двадцати секунд. Всё действительно оказалось так просто.

Но почему?

Компьютеры сегодня очень быстры. Процессор Фрейи работает с частотой 4,6 ГГц, а на её Рабочем столе находится примерно 950 файлов GIF. За 20 секунд её ЦП должен выполнить 92 миллиарда тактов или по 97 миллионов тактов на каждое изображение. А это много.

Я предположил, что проблема была связана с наблюдением, которое я для себя назвал первым законом вычислений Доусона: O(n^2) — оптимальное время для плохо масштабируемых алгоритмов — достаточно быстро, чтобы попасть в продакшен, но достаточно медленно, чтобы ломать всё, после того, как он туда попал.

То есть наиболее вероятное объяснение того, почему выстраивание значков занимает так много времени, заключается в том, что код перестроения порядка значков использует O(n^2) (он же квадратичный) алгоритм, то есть при удвоении количества значков время на их выстраивание возрастает в четыре раза. При таком масштабировании производительности алгоритм, хорошо работающий с десятью элементами, может тормозить всего с тысячей элементов.

Хорошая теория, но как её доказать?

Научно!

Я начал с написания скрипта, который заполнит мой Рабочий стол заданным количеством изображений. Я многократно запускал его со всё большими количествами изображений и записал трассировку ETW, чтобы можно было замерить производительность. Также я отслеживал explorer.exe с помощью Диспетчера задач, чтобы можно было понять, когда он закончил одну задачу и готов к следующей.

Мой первый тест дал хаотичные результаты, они выглядели как нелинейный рост, но любые попытки сопоставления с линией больше походили бы на веру, чем на соответствие данным. Чтобы качественнее протестировать мою теорию, мне нужно было понять, что происходит.

Изучая трассировки, я понял, что деструктор BatchPositionChangesHelper выполнялся бОльшую часть времени (синяя область), но не всё время работы explorer (зелёная область):


Я осознал, что, помимо прочего, работа по выстраиванию прерывается работой по отображению, после чего понял причину такой вариативности.

Когда мой скрипт на Python начинал создавать изображения, процесс explorer.exe замечал это и сразу же начинал пытаться разместить значки. В процессе создания изображений он мог делать это несколько раз, что давало непредсказуемые результаты. Это была ситуация гонки, из-за которой постоянство общих затрат оказывалось нарушенным. Так как у меня не было доступа к исходному коду explorer.exe, мне нужно было придумать способ заставить его ждать завершения создания всех изображений, а потом уже выполнять выстраивание. Я реализовал это с помощью библиотеки psutil, позволившей приостановить процесс explorer.exe, пока создавались изображения. Затем, когда я возобновлял процесс, он проделывал всю работу. Код выглядит примерно так:


Сделав это, я запустил свой тестовый пакетный файл, параллельно записывая трассировку ETW. Для минимизации шума и размера трассировки я отключил стеки вызовов переключения контекста (необязательные) и выключил индексирование папки Рабочего стола. Я отслеживал загрузку ЦП процессом explorer.exe с помощью Диспетчера задач и нажимал на Enter, чтобы перейти к следующему тесту, когда загрузка падала до нуля. Так я получил очень красивый график загрузки ЦП процессом explorer.exe:


Отдельные блоки обозначают загрузку ЦП для 100, 200, 300 и так далее изображений вплоть до 1000. Если вы внимательны, то заметите, что загрузка ЦП увеличивается быстрее, чем линейно, но медленнее, чем квадратично. То есть изначальные данные позволяют предположить, что алгоритм выстраивания не-совсем-O(n^2).

Однако explorer занимается не только выстраиванием. Если некоторые из задач O(n), то есть линейны, то они ослабят влияние задач O(n^2). При увеличении n задачи O(n^2) постепенно начнут доминировать, но я не хотел, чтобы моя тестовая программа работала даже дольше 160 секунд, которых требует её выполнение.

Изолирование

Значит, следующей задачей будет изолирование времени, потраченного на деструктор BatchPositionChangesHelper. В моей тестовой трассировке оно составило 78,4% времени, потраченного в explorer.exe, и 92,3% времени, потраченного в занятом потоке, и если я смогу доказать, что оно было квадратичным, то докажу, что при увеличении n оно будет доминировать навсегда.


Для этого я посмотрел на данные CPU Usage (Sampled) и отфильтровал их, чтобы отображались сэмплы только в деструкторе BatchPositionChangesHelper и его дочерних задачах. Затем я рассмотрел десять разных областей графика и составил график количества сэмплов. Кривая настолько плавная, что выглядит подделкой, но это именно настоящие данные.

Если взглянуть на ключевые точки графика, например, где количество изображений равно 500, а потом 1000, то можно увидеть, что масштабирование производительности происходит немного хуже, чем O(n^2). То есть для выстраивания 1000 значков требуется в четыре с лишним раза больше времени, чем на выстраивание 500 значков.

Решающий удар

Обычно у меня на Рабочем столе мало значков, поэтому я практически неуязвим для этого бага. Однако я видел людей, Рабочий стол которых полностью заполнен значками. У них, вероятно, он проявляется, но в менее серьёзной форме.


Фрейя использовала свой Рабочий стол для хранения файлов GIF. Она обращалась с ним, как с папкой (чем он собственно и является), в которой можно удобно хранить изображения. Она редко пользовалась значками с Рабочего стола. Поэтому когда количество значков со временем стало избыточным, она решила снять флажок «Show desktop icons» («Отображать значки рабочего стола»), чтобы было меньше неразберихи. Значки скрылись и она могла продолжать сохранять изображения в эту папку.

Но тем не менее…

Испытываемые ею зависания, при которых explorer тратил 20 с лишним секунд на выстраивание значков на Рабочем столе, тратя 92 миллиарда тактов ЦП на правильное размещение значков, происходили… тогда, когда значки были скрыты.

Это какой-то новый уровень удивительности.

Выстраивание значков в сетку изначально должно быть линейной операцией, но каким-то образом её написали квадратичной и она выполнялась вне зависимости от того, показываются значки, или нет.

Вот и всё. Если вы пишете код, который будут запускать другие, то убедитесь, что он достаточно хорошо масштабируется для обработки любого возможного множества данных, вне зависимости от его разумности. Квадратичные алгоритмы обычно проваливают эту проверку.

Ловушки

Похоже, что этот баг связан с изменением схем использования нескольких мониторов (как мне сказали, такая необходимость часто возникает у стримеров), поэтому какое-то время я проводил тесты, подключая и отключая свой внешний монитор. Это плохо подходит для эффективного тестирования, к тому же, похоже, я испортил разъём для внешнего монитора у своего личного ноутбука. Больше он не видит внешний монитор. Упс.

Да, с символами

Когда я анализировал трассировку Фрейи, я просто загрузил её в Windows Performance Analyzer (WPA) и подождал. Мне не нужно было проверять версию Windows, на которой она работала, и знать, какие патчи у неё установлены. WPA просто изучал отладочную информацию всех EXE и файлов PE и скачивал файлы символов с серверов символов Microsoft (и с серверов Chrome, потому что я это разрешил). Серверы символов — это хорошо. Если вы работаете в Windows, то включите использование серверов символов. Если вы не в Windows, то сильно вам сочувствую (жаль, что отладка и профилирование, особенно проблем на машинах других пользователей, для вас гораздо сложнее).

Сообщаем о проблеме

Не знаю, на скольких людей повлиял этот баг (те, у кого 200-300 значков, она касается достаточно слабо, а при большем количестве ситуация постепенно становится хуже), и не имею возможности его устранить. Поэтому я сообщил о нём. Я не питаю особых надежд, что его исправят. Под моим последним багом квадратичного времени в Windows ноль комментариев, несмотря на то, что я опубликовал его несколько месяцев назад.

Сырые измерения из моих тестов сохранены здесь, а сами тесты находятся на github. Этот баг чрезвычайно легко воспроизвести. Если кто-то захочет создать запись Feedback Hub, то это нужно сделать. Рекомендую при зависании Рабочего стола использовать опцию UIforETW Browse Folder — операция будет заблокирована на всё время зависания.

Уроки для разработчиков ПО

За свою карьеру я много раз участвовал в собеседованиях. Часто мне давали задание придумать алгоритм, выполняющий какую-то искусственную задачу. Очевидный алгоритм «грубого перебора» обычно оказывается квадратичным (O(n^2)) или реже экспоненциальным (O(2^n)). Чаще всего это приводит к обсуждению следующих тем:

  1. Почему квадратичные и экспоненциальные алгоритмы неприемлемо медленны для большинства задач реального мира
  2. Как усовершенствовать алгоритм, чтобы он был O(n log n) или лучше.

На правах рекламы

Эпичные серверы — это виртуальные серверы на Linux или Windows с мощными процессорами семейства AMD EPYC и очень быстрой файловой системой, используем исключительно NVMe диски от Intel. Попробуйте как можно быстрее!

Отсутствие свободного места на жестком диске — проблема постоянная. С покупкой более вместительного носителя она не решается, а лишь усугубляется: чем больше накапливается информации, тем сложнее ее контролировать и при этом соблюдать некий условный порядок.

  • Сканирование дисков и каталогов
  • Визуализация данных: отображение файловой структуры в виде диаграммы, графика или карты
  • Расширенная статистика и ее экспорт
  • Поиск дубликатов, временных файлов
  • Фильтры и расширенный поиск
  • Дополнительные инструменты
  • TreeSize
  • Scanner
  • WinDirStat
  • Space Sniffer
  • JDiskReport
  • Xinorbis
  • FolderSizes

TreeSize Pro

В левой панели окна TreeSize расположено меню выбора дисков и древо каталогов, где осуществляется навигация и выбор источника сканирования.

Top 100 содержит список самых крупногабаритных файлов на диске. Сопутствующая информация в колонках таблицы позволяет узнать дату последнего доступа или создания файла — это поможет принять решение: удалить или оставить файл.

Не меньший интерес в TreeSize представляют собой поиск (меню File Search). Можно задействовать все типы данных (All Search Types): сюда, в частности, входят поиск устаревших, временных файлов, дублей. Преимущество поиска через TreeSize неоспоримо: программа многопоточная, работает по сети, поддерживает шаблоны.

Увы, бесплатная (по сути — ознакомительная) версия TreeSize существенно проигрывает платной: не поддерживаются многопоточность, расширенный поиск, визуализация и многие другие важные функции.

Резюме. TreeSize Pro отлично дополняет возможности любого файлового менеджера, позволяя тщательно провести анализ занятого пространства дисков и каталогов. Хорошо настраиваемый интерфейс и поиск, визуализация, экспорт — стандартный набор в комплекте.

[+] Функциональность
[+] Расширенный поиск файлов
[+] Быстрое многопоточное сканирование
[+] Дополнительные инструменты

Scanner

Scanner — бесплатная утилита для анализа содержимого жесткого диска. Отсутствие настроек, минимум опций — тем не менее, Scanner представляет собой вполне функциональное решение.

В левой части окна доступен выбор диска для анализа, также можно получить информацию в имеющихся файлах на всех дисках с помощью кнопки «Суммарно» в левом нижнем углу.

В центре находится круговая диаграмма, которая отображает файловую структуру в виде сегментов. Сегменты, как легко отметить, имеют несколько уровней вложенности и различный цвет. При наведении курсора на определенный участок диаграммы, доступна информация о количестве, размере файлов, место их расположения. Можно переместиться в каталог, кликнув по нему, либо произвести операции с файлом через контекстное меню.

Резюме. Программа будет полезна для быстрого зрительного анализа занимаемого дискового пространства. Что касается доступных операций с файлами и каталогами — их достаточно лишь для удаления и открытия файлов. Другими словами, использовать Scanner как файловый менеджер (с поиском, режимами отображения, статистикой) не удастся.

WinDirStat

WinDirStat — бесплатная утилита для анализа и очистки жесткого диска от ненужных файлов.

Программа сканирует указанные источники (каталоги или локальные диски) и предоставляет информацию для анализа в удобном для ознакомления виде. Структура каталогов отображается в виде разноцветных сегментов различного размера, в соответствии с занимаемым пространством, в нижней части окна WinDirStat. Таблица соответствий цвета типу файла находится в правом верхнем углу.

В подобном представлении структуры есть свои недостатки: скажем, нельзя узнать размер файла при наведении, отсутствуют пометки. Поэтому в случае с WinDirStat не хватает альтернативных способов визуализации, таких как график и диаграмма.

Щелкнув по сегменту, можно получить детальную информацию о соответствующем файле и его расположении. С файлами доступны такие стандартные команды, как удаление (в Корзину либо безвозвратное), просмотр свойств, копирование пути и другие. В разделе «Очистка» настроек программы предусмотрено создание пользовательских действий, позволяющих добавить до 10 операций из командной строки: удаление файлов, архивация, рекурсивное удаление и прочие.

В целом, почти все настройки WinDirStat сводятся к оформлению, отображению структуры и списка каталогов. Каких-либо дополнительных утилит, инструментов для отчетности, статистики, поиска здесь не предусмотрено.

Резюме. В WinDirStat представлены неплохие возможности по настройке, однако дефицит дополнительных инструментов и режимов отображения существенно ограничивает программу в использовании.

SpaceSniffer

SpaceSniffer — бесплатная утилита с полностью настраиваемым интерфейсом и режимом отображения данных в виде карты. На фоне аналогичных решений, примечательны такие функции, как многопоточность, поиск (в том числе сетевой), поддержка NTFS.

Для обработки можно выбрать не только диск из списка, но и каталог, указав путь в строке Path. В результате сканирования, формируется карта в виде блоков. Уровень вложенности можно регулировать с помощью кнопок Less/More Detail — соответственно, детализация уменьшается или увеличивается. Кликнув по блоку, можно ознакомиться с его содержимым, не переходя в каталог. Перемещаться вглубь по каталогам не менее удобно. Дополнительных режимов отображения в SpaceSniffer нет, однако можно настроить оформление на свое усмотрение через главные настройки (Edit — Configure).

Функции статистики представлены скромно. При желании, можно произвести экспорт в текстовый файл: суммарная информация, список файлов, а также файлы, сгруппированные по папкам. Что интересно, отчеты можно создавать с помощью шаблонов.

Из дополнительных возможностей следует отметить теги и фильтр. Фильтрация осуществляется по указанной маске, синтаксис описан в разделе справки Filtering help. Возможен поиск по размеру, названию папки, тегам, атрибутам и другим данным. Теги позволяют делать выборки из данных для последующей фильтрации и пакетных операций. Их можно рассматривать как временные закладки в рамках сеанса.

Резюме. SpaceSniffer не выделяется широкой функциональностью, но привлекает скоростью работы, достаточно удобным отображением данных в виде карты и дополнительными инструментами, такими как фильтр и теги.

JDiskReport

Бесплатная кроссплатформенная утилита JdiskReport анализирует, какие файлы занимают на диске больше всего места. В дополнение, программа предоставляет статистику по распределению данных, которую можно просмотреть в виде графиков и диаграмм.

Выбирав каталог или диск для сканирования, пользователь может ознакомиться с собранной информацией или сохранить результат в виде снимка для последующего открытия. Это актуально при постоянной работе с большими объемами данных.

Статистика распределена по вкладкам: Size, Top 50, Size Dist, Modified и Types. Раздел Size показывает соотношение файлов в выбранном источнике. На выбор несколько режимов отображения: 2 вида диаграмм, график и таблица. Top 50 содержит список самых крупных, старейших и новейших файлов — потенциальных «кандидатов» на удаление. Разделы Size Dist, Modified и Types позволяют ознакомиться с распределением файлов по их размеру, дате изменения и типу соответственно.

С одной стороны, действительно, статистика дает почву для размышлений, с другой — в JdiskReport не продумана навигация по файлам и каталогам выборок. То есть, какие-либо файловые операции недоступны, в наличии лишь пункт «Open Explorer…» («Открыть Проводник») в контекстном меню. Отсутствует экспорт, за исключением того, что таблицу файлов и сопутствующую информацию можно скопировать в буфер обмена.

Настройки программы, преимущественно, отвечают за интерфейс. Темы оформления в избытке, а вот, скажем, для отображения столбцов или древа каталогов опций не нашлось.

Резюме. JdiskReport обходит по функциональности Scanner и WinDirStat благодаря статистике по распределению файлов. Но есть и слабые стороны — прежде всего, отсутствуют какие-либо операции с файлами и каталогами.

Xinorbis

Xinorbis — анализатор данных на жестком диске с возможностью просмотра статистики в виде таблиц, диаграмм и графиков. Программа поддерживает сканирование на различных источниках: жестких дисках, съемных носителях, по локальной сети, FireWire и др.

Подробная информация собрана в разделе Folder properties секции Tasks. Данные можно просматривать в виде настраиваемых графиков, диаграмм, структурировать по типу данных или расширению файла. Доступны сведения о возрасте данных (Dates), хронология (History), занимаемый размер (Folders). Раздел Top 101 содержит список не только самых больших и маленьких файлов. В таблице файлов отображаются такие свойства, как дата создания, модификации и последнего доступа.

Контекстное меню навигатора в Xinorbis более чем функционально: оно не только содержит стандартные команды Проводника, но также предусматривает экспорт, архивацию, Hex-редактирование, генерацию контрольной суммы.

В секции Advanced собраны инструменты, такие как поиск дубликатов по имени и размеру. Другие команды также расширяют поисковые возможности. Наиболее интересен раздел Folder Detail, представляющий собой фильтр по ряду параметров: текст, размер, атрибуты файла, владелец, категория.

Немаловажное достоинство Xinorbis — настраиваемые отчеты в форматах HTML, CSV, XML и прочих. В результате, на создание файла затрачивается всего один клик.

Резюме. В Xinorbis сложнее всего искать недостатки, поскольку учтены все стандартные возможности файлового анализатора: от построения диаграмм до экспорта отчетов.

[+] Отчетность
[+] Фильтр и поиск
[+] Гибкая настройка и функциональность

FolderSizes

FolderSizes — программа для сканирования и анализа дискового пространства с возможностью экспорта результатов в виде отчета. Включает в себя инструменты для поиска файлов по множеству критериев: размер, владелец, возраст и др.

Интерфейс FolderSizes состоит из нескольких панелей (навигатор, список дисков, графики, адресная панель), а также ribbon-ленты, разделенной на вкладки. Главный раздел — Home, здесь доступны основные инструменты для анализа, экспорта и других операций.

В адресной панели можно указать не только стандартный путь, но также сервер или NAS-устройства, сетевые и съемные носители (опция Analyze path(s)). Файловая панель гибко настраивается, колонки легко скрыть или добавить дополнительные. Результаты сканирования можно просмотреть в виде графиков, диаграмм или карты в области Bar Graph. Дополнительные параметры, связанные с отображением информации в панелях, доступны во вкладке Graph.

Для создания отчетов используется инструмент File Reports, который производит поиск по указанным критериям и выводит детальную информацию в удобочитаемом формате. Экспорт отчета доступен в HTML, PDF, XML, CSV, TXT и других форматах, в том числе графических. FolderSizes несложно связать с планировщиком для автоматического формирования отчетов по расписанию.

Помимо стандартных отчетных функций, в FolderSizes возможен анализ тенденций. Для этого предназначен инструмент Trend Analyzer позволяет ознакомиться с изменением размера, количества файлов и по другим критериям.

Фильтр и поиск с поддержкой правил, встроенный архиватор, командная строка — возможности FolderSizes можно перечислять и далее. Функциональность программы вне конкуренции.

Резюме. FolderSizes радует наличием всех необходимых для анализа инструментов, удобным интерфейсом, дополнительными возможностями, которых нет в других программах (например, анализ тенденций и архиватор). В итоге, она будет интересна для изучения широкой аудитории.

[+] Полностью настраиваемый интерфейс
[+] Инструмент для анализа тенденций
[+] Удобная навигация по файлам и каталогам
[+] Фильтр и поиск

В компьютерной криминалистике или иначе форензике значение имеет всё, даже самые незначащие на первый взгляд мелочи. Взять хотя бы пустой ярлык. Связанный с ним файл надежно удален, однако хранящаяся в ярлыке информация может оказаться столь же значимой, как и сам объект, на который ярлык ссылался. Ведь помимо пути и временных меток, оставленные пользователем ярлыки могут хранить такие данные как идентификаторы томов и MAC -адреса сетевых ресурсов.

Для углубленного анализа ярлыков было придумано немало достойных утилит, среди которых можно отметить MiTeC Windows File Analyzer. Предназначается она для извлечения подробной информации из некоторых типов баз данных, а также из ярлыков. Тулза работает с ярлыками LNK , файлами Prefetch , DAT и базами данных Thumbs.db . По умолчанию утилита получает список ярлыков из папки %userprofile%\AppData\Roaming\Microsoft\Windows\Recent , но вы можете указать и свое расположения с ярлыками.

А теперь посмотрим, что это нам дает.

Предположим, что вы начальник в офисе и хотите выяснить, кто из сотрудников подключал к вашему рабочему компьютеру флешку. Как вы узнали, что такое подключение имело место? Очень просто, в папке недавних документов у вас остался указывающий на съемный накопитель ярлык. Откройте папку с ярлыком в Windows File Analyzer,

Windows File Analyzer

Windows File Analyzer

найдите его в списке и откройте двойным кликом его свойства.

Windows File Analyzer

В них вы обнаружите не только дату создания ярлыка, но также название и серийный номер тома флешки.

Эти данные являются той самой зацепкой, которая поможет вам выявить любителя втыкать флешки в чужие компьютеры.

Попросив на минуту у подозреваемого накопитель, подключите его к ПК, перейдите в него в командной строке и выведите его содержимое командой dir.

CMD - dir

При этом в консоли вы получите и название флешки, и серийный номер тома. Правда, пользователь может отформатировать накопитель, в этом случае Windows будет сгенерирован новый серийник, но вряд ли он станет это делать специально. Если юзер достаточно умен, он скорее позаботится о том, чтобы удалить следы своей работы.

С таким и даже большим успехом с помощью Windows File Analyzer можно идентифицировать сетевой ресурс.

Обнаружив ярлык сетевой папки, вы можете установить связанный с ней ПК, сравнив MAC -адрес сетевого адаптера компьютера с тем физическим адресом,

Сеть

который указан в ярлыке.

Windows File Analyzer

Данный пример еще раз показывает, насколько важными уликами могут оказаться хранящиеся в ярлыках метаданные, и это должно послужить поводом трижды подумать перед тем, как втихую начинать пользоваться чужим компьютером.

Вы видели новый диспетчер задач Windows? Сегодня я раскрою вам тайное знание о нем и покажу, как копаться в Windows с помощью разных диагностических программ.

Неделю назад Холмс без особых усилий вычислил причину автоматического запуска Skype с помощью Process Monitor. В Windows 8 и более новых ОС история об автозагрузке могла бы выйти немного другой. И дело тут даже не в том, что в этой ОС не устанавливается ОЕМ-утилита производителя ноутбука, ставшая причиной проблемы. Все намного интереснее!

Управление автозапуском в Windows

Для управления программами, стартующими вместе с системой, в Windows исторически служила утилита msconfig . Список программ формировался на основе содержимого папки «Автозагрузка» ( shell:startup ) и нескольких разделов реестра:

В Windows 8 этот принцип сохранился, но функция перешла к диспетчеру задач.

Новинкой же стало отображение информации о влиянии на скорость загрузки системы. Вероятно, по замыслу создателей Windows, эти сведения должны помочь людям при расчистке автозапуска. Я предлагаю вам залезть под капот Windows и разобраться, как все это работает.

Как присваивается степень влияния на запуск Windows

Диспетчер задач слегка приоткроет вам завесу над тайной, если навести курсор на заголовок столбца.

Конкретные параметры влияния на скорость запуска Windows таковы:

  • Высокое – приложение использует более 1 секунды времени процессора или свыше 3MB дисковых операций I/O
  • Среднее – приложение использует от 300 до 1000 мс времени процессора или от 300KB до 3MB дисковых операций I/O
  • Низкое – приложение использует менее 300 мс времени процессора и менее 300KB дисковых операций I/O

Давайте посмотрим, откуда диспетчер задач берет эти сведения.

Где хранятся результаты измерений

Найти источник данных оказалось очень легко. Настроив фильтр Process Monitor на процесс taskmgr , я включил отслеживание файловой активности и перешел в диспетчере задач на вкладку «Автозагрузка». Результат не заставил себя ждать — нашлась папка %WinDir%\System32\wdi\LogFiles.

Имя папки StartupInfo недвусмысленно намекало на ее содержимое. По указанному пути, действительно, обнаружилось несколько XML-файлов с примерно такими данными.

Очевидно, при запуске диспетчера задач происходит анализ XML-файла, соответствующего последней загрузке Windows. Затем сведения выводятся в упрощенном виде на вкладке «Автозагрузка». Если файлы удалить, степень влияния будет указываться как «Не измерено».

Как выполняются измерения

Уровнем выше, в папке LogFiles , оказались отчеты в формате ETL, в которых наряду с отчетом о загрузке Windows сохраняет также сведения о выключении системы и входе в нее.

В принципе, даже исходя из названия папки wdi , можно догадаться, как создаются отчеты. Аббревиатура означает Windows Diagnostics Infrastructure, т.е. инфраструктура диагностики Windows. Чтобы проверить предположение, я снова обратился к Process Monitor, на сей раз натравив его на папку wdi.

Мне даже не понадобилось перезагружать систему, поскольку утилита сразу зафиксировала в папке активность svchost.exe , хост-процесса для служб. Открыв в диспетчере задач вкладку «Подробности», я щелкнул правой кнопкой мыши по процессу с идентификатором 1144 и выбрал «Перейти к службам».

Служба политики диагностики запускается автоматически, а ее полное описание вы можете посмотреть в оснастке services.msc. При каждой загрузке Windows эта служба дожидается окончания автозапуска и сохраняет свежий отчет в формате ETL в папке C:\Windows\System32\wdi\LogFiles. Файл может называться BootCKCL.etl или BootPerfDiagLogger.etl в зависимости от версии Windows. На его основе создаются записи в журнале Diagnostics-Performance . Кроме того, в Windows 8+ наряду с ETL появляются XML-файлы для диспетчера задач.

Знакомство с новой версией Windows Performance Analyzer

Владельцы книги об ускорении загрузки Windows уже знакомы с предыдущей версией этого инструмента, поскольку именно с его помощью я разбирал этапы загрузки Windows 7 . В Windows ADK средства диагностики и оценки производительности системы стали мощнее и… прекраснее :)

Впрочем, графический интерфейс WPA может отпугнуть новичков, поэтому я кратко расскажу о его основных функциях.

Загрузка и установка

Скачайте Windows ADK и установите средства для оценки производительности (выделены синим на рисунке).

После этого отчеты в формате ETL начнут открываться в WPA двойным щелчком.

Выбор графика и изменение вида отображаемых данных

Кстати, чтобы открыть график, можно перетащить его из панели Graph Explorer на кнопку новой вкладки.

В новом WPA появилась панель инструментов, упрощающая настройку вида графика и открывающая доступ к дополнительным параметрам.

  1. Выбранный вами график.
  2. Тип представления данных на графике. Звездочка указывает на то, что выбранный тип отличается от стандартного.
  3. Вид диаграммы.
  4. Редактор вида графиков, где можно задать отображаемые столбцы, а также параметры сортировки и группировки для них. Там же вы можете настроить фильтры, о которых я расскажу ниже.
  5. Вид окна, где у вас есть выбор между таблицей, диаграммой и их совместному отображению.

Выбор данных для отображения в таблице

В табличном режиме WPA показывает предустановленный набор данных для каждого типа графика, но его легко изменить. Вы можете щелкнуть по заголовку любого столбца правой кнопкой мыши и выбрать любой из доступных для графика параметров. А щелчок левой кнопкой мыши по заголовку столбца ожидаемо выполняет сортировку.

В сложных ситуациях помогут расширенные фильтры, набор которых соответствует списку доступных в таблице столбцов.

Учтите, что фильтры работают кумулятивно, т.е. стандартно используется условие AND . Показанный на рисунке выше набор бесполезен, но его легко скорректировать, добавив между фильтрами условие OR .

С помощью этого фильтра я и получил сокращенный список процессов, показанный на картинке выше с контекстным меню. Кстати, поиск запускается привычным сочетанием клавиш Ctrl + F, и условия в нем задаются аналогично.

В заключение этого мини-обзора отмечу, что вид открытого ETL-файла, включая все текущие настройки вкладок, можно сохранить из меню File – Export Session . Теперь вы вооружены для изучения автозапуска Windows!

Автозагрузка Windows сквозь призму WPA

В файле BootCKCL.etl содержится краткий отчет о загрузке, протоколирующий три компонента.

Напомню, что влияние программ на скорость запуска Windows оценивается на основе процессорного времени и объема дисковой активности. Отмечу, что я не нашел в отчете ETL именно тех значений, что указаны в XML-файлах для диспетчера задач, хотя картина аналогична. Остается предположить, что перед записью в XML производятся какие-то дополнительные вычисления.

Использование процессора

В графике CPU Usage (precise) я выбрал представление Utilization by Process, Thread , после чего отфильтровал ненужные процессы из таблицы и добавил столбец CPU Usage (ms) .

Сравните эту картину с диспетчером задач на первом рисунке статьи. Выделенные процессы символизируют границы между тремя степенями влияния программ на скорость загрузки Windows. Похоже, не правда ли?

Дисковая активность

В графике Disk Usage я выбрал представление Utilization by Process, IO Type и добавил в таблице столбец Size .

Обратите внимание на процессы itype.exe (драйвер клавиатуры Microsoft) и Snagit32.exe. По нагрузке на CPU влияние этих программ на скорость запуска Windows можно оценивать как среднее. Однако именно из-за высокой дисковой активности им присвоена высокая степень влияния.

Дело об автозагрузке Windows в новом ракурсе

Помните, как Холмс просил Ватсона сделать лог загрузки с помощью Process Monitor? Если бы мисс Финли работала в Windows 8 или более новой системе, детектив смог бы дать ответ не просто быстрее, а моментально. Он бы сразу попросил прислать ему последний XML-файл с отчетом о загрузке!

Родительский процесс

Вы уже видели выше эту картинку, но теперь я выделил другие сведения: родительский процесс, его ИД и время запуска.

Согласитесь, что прислать крошечный текстовый файл можно намного быстрее, чем большой журнал загрузки Process Monitor. В принципе, чтобы решить проблему мисс Финли в Windows 7, Холмс мог бы обойтись и отчетом BootCKCL.etl , также находившемся на диске.

На графике Lifetime by Process можно добавить столбцы Process ID и Parent Process ID , т.е. идентификаторы процесса и родительского процесса соответственно.

Поскольку ИД 2024 принадлежит процессу explorer.exe, выделенные программы запускаются классической оболочкой Windows из стандартных расположений автозагрузки.

Отложенная автозагрузка

В Windows 8 в очередной раз предпринята попытка снизить влияние программ в автозагрузке на скорость запуска системы. Достаточно перезагрузить систему, чтобы увидеть, как программы из автозагрузки начинают появляться только после отображения начального экрана и даже перехода на рабочий стол.

WPA очень наглядно отображает распределение автозагрузки программ по времени. Стоит добавить столбец Start Time (s) , отфильтровать лишнее, и все будет видно как на ладони.

Процесс explorer.exe запустился через 21 секунду после старта Windows, но лишь спустя 15 секунд после него начали стартовать программы из автозагрузки, причем последняя из них запустилась только через 42 секунды.

Такое поведение невозможно нейтрализовать полностью, но можно значительно сократить задержку запуска программ, используя секретный параметр StartupDelayInMSec в пользовательском разделе реестра.

Конечно, найдутся люди, которых и это не устроит, но у них никто не отбирает возможность распределить автозагрузку по времени с помощью планировщика заданий ! Холмс наглядно проедмонстрировал это в деле об автозагрузке Windows.

Рекомендации Microsoft разработчикам программ

Заканчивая тему автозагрузки, я хотел бы отметить еще один момент. Появление в диспетчере задач сведений о влиянии на скорость запуска Windows – это еще и сигнал разработчикам о том, что при чистке первыми под нож вероятнее попадут более требовательные к ресурсам программы.

Microsoft может придумывать разные трюки, стараясь нивелировать влияние программ на скорость загрузки Windows. Но компания бессильна в другом аспекте – энергопотреблении классических программ!

В Windows 8 появились различные улучшения, призванные продлить работу ноутбуков, ультрабуков и планшетов от батарей. Пожалуй, самым заметным новшеством являются современные приложения, которые отправляются «в сон», когда вы переключаетесь в другое окно. И да, эти приложения нельзя поместить в автозагрузку ;)

В моей аудитории практически нет разработчиков, но я специально хочу рассказать вам о рекомендациях Microsoft относительно автозапуска программ . Ведь они рисуют Windows такой, какой ее хотели бы видеть создатели.

Я еще раз хочу подчеркнуть, что эти советы – для авторов программ. Если вы хотите добавить классическую программу в автозагрузку, это ваше личное дело, и никто этому не препятствует. Однако Microsoft не рекомендует разработчикам наполнять автозапуск своими творениями, дублирующими функции Windows, либо имеющими альтернативные возможности реализации с более экономичным энергопотреблением.

Читайте также: