Почему Windows около 20 секунд упорядочивает невидимые значки Рабочего стола?

Автор оригинала: Bruce Dawson
  • Перевод

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

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

Фрейя отправила мне трассировку ETW того, что происходит с её машиной и я исследовал её с помощью Windows Performance Analyzer (WPA). Первым делом я заметил, что график UI Delays показывает, как и можно было догадаться, что потоку explorer.exe 7888 не удавалось проверить сообщения в течение 20,531 секунд. Он завис.


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

Если потоку не удаётся перекачивать сообщения, то это значит, что он или занят чем-то другим (потребляет ресурсы ЦП), или ожидает чего-то другого (ЦП простаивает). Изучив более детально период времени 20,531 секунд MsgCheck Delay, я проверил данные CPU Usage (Precise) (взятые из инструментария переключения контекста) и увидел, что поток 9228 был запущен в течение 99,2% времени — он потреблял много ресурсов ЦП.

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


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

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


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

src = os.path.join(script_path, ‘SunsetWhales.jpg’)
dst = os.path.join(desktop_path, ‘TestFiles%04d.jpg’)
for i in range(file_count):
  shutil.copy(src, dst % i)

Я запустил этот простой скрипт со значением 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, пока создавались изображения. Затем, когда я возобновлял процесс, он проделывал всю работу. Код выглядит примерно так:

explorer = p = psutil.Process(explorer_pid)
explorer.suspend()
CreateImages()
explorer.resume()

Сделав это, я запустил свой тестовый пакетный файл, параллельно записывая трассировку 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. Попробуйте как можно быстрее!

VDSina.ru
Серверы в Москве и Амстердаме

Комментарии 560

    +80

    На собеседовании в Микрософт:
    — Какой способ сортировки является самым надёжным?
    — Пузырьком без оптимизаций границ.
    — Написать можете?
    — Вот!
    — Вы приняты! Листочек с кодом не теряйте, пригодится…

      +18
      Шутки шутками, а четверть века назад на 386-м компьютере оно почему-то не тормозило…
        +3

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

          +35
          Еще не создан процессор, способный в реальном времени выстраивать значки. Это вам не трассировка лучей какая-то /sarcasm
            0
            Предлагаете 3д рабочий стол? :) Как-то игрался таким, где был вид сверху на коробку, в которой лежали разные иконки.
              +1

              Да? А физика в этом столе была? Можно было кидаться иконками?

                +10
                Вроде да, в стопочки собирать их тоже. Это во времена ХР было, если не путаю. Вроде Real Desktop похож:
                image
                  0

                  А не bumptop? На семерке она ещё работала вроде

                  +7
                  Причем иконками должен кидаться усатый товарищ Комманд Ком
                  Иконы
                  Весь день т. Комманд Ком ходил просветленный. А встретив
                  грустного отца Вындоуза, даже поинтересовался участливо:
                  — Или случилось что, батюшка?
                  — Все иконы украли, — сказал отец Вындоуз и заплакал.
                  — Ах они нехристи, — утешал т. Комманд Ком, — ах они
                  оболочки дешевые!
                  И усы его весело шевелились.
                    +1

                    О, в таком можно было взять command.com (любую иконку, на самом деле) и запинать им иконки в корзину.

              +6
              Ну, автоматическое было уже в Вин 95, которое не тормозило на 486-м. Сути не меняет — рассчитать расположение на координатной сетке нескольких сотен картинок, это смешная задача для любого 32-битного процессора.
                0
                ЕМНИП даже в вин 3 было, но в 95 переехало в более очевидное место
                  +5

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

                    –7

                    То есть один человек написал, ещё один, а то и два — отревьювали и поставили апрув, ещё как минимум один проверил как это работает согласно спецификации, наверное были какие-то перф тесты… и это вышло в прод? Серьезно? Это либо наколеночный код студента, который без ревью влил свои изменения, либо кому-то лучше поискать другую работу, пока такая халатность не привела к уголовке. Мне очень не хочется верить в такой пофигизм на всех уровнях разработки.

                      +5
                      Вполне может оказаться, что этот код тянется ещё с тех времён, когда при командной разработки не использовались системы контроля версий, а каждый программист владел определённым набором файлов, которые переносились с его компьютера на дискетах к коллегам для запуска процесса сборки. При таком подходе каждый в основном смотрит в свои файлы, и только иногда — в файлы коллег, и ревью происходит только для изменений чужих файлов.
                        +3
                        То есть один человек написал, ещё один, а то и два — отревьювали и поставили апрув, ещё как минимум один проверил как это работает согласно спецификации, наверное были какие-то перф тесты… и это вышло в прод? Серьезно?

                        Если мы говорим про времена ещё Windows 95… тогда было точно не до таких оптимизаций, а также не до точного ТЗ...


                        пока такая халатность не привела к уголовке

                        Компенсация до 5$ за любой возможный ущерб.

                          0
                          тогда было точно не до таких оптимизаций

                          Ага, а половину ОС на асме ради развлечения писали.
                            0

                            Вот те места, которые были узкими — и писали на ассемблере. А это конкретное не было узким местом ещё много лет.


                            Вот что этой проблемой никто не озаботился во времена уже ранней XP — более странно и показывает уже особенность внутренних процессов MS.

                        +1
                        Рабочие столы со свалкой иконок всякого барахла не вчера же появились. И я уверен, что его несколько раз переписывали. И когда Active Desktop в 98-й винде пришёл, и когда виджеты появились.
                          +1
                          Это тот, который вечно обожал вывести «Для восстановления содержимого Active Desktop нажмите кнопку» после загрузки?
                        +1
                        Это вы так думаете, что не тормозило. А у вас было ~1000 значков на рабочем столе 95-й винды (800x600)
                      +7
                      Шутки шутками, а четверть века назад на 386-м компьютере оно почему-то не тормозило…
                      а знаете почему? Потому что на древних компах если на рабочем столе было сильно много файлов винда просто не грузилась (проверено)
                        +4
                        Можно предолоджить такой фикс микрософту
                          +3
                          А если обои были в bmp, они могли съедать больше половины оперативки.
                            0
                            Они до десятки всегда были в BMP. Да и про десятку не уверен, хранится точно в JPG (бесит), а вот как оно в памяти, я не изучал.
                              +1
                              Значит просто «если были обои». Ну или от размера файла зависело. Я уж точно не помню, но решал тогда нехватку памяти удалением обоев, и всем советовал их убирать.
                                +1
                                С обоями тоже много интересных историй. Как и с их отсутствием.
                                На каком-то форуме встречал историю о том, что с установленными обоями юзер в систему логинился моментально, а если обои отключить — то очень долго.

                                Ещё был вариант экономии памяти на обоях через active desktop, когда обоями страничка с jpg выставлялась. Не знаю, правда, дисковая память на этом экономилась или оперативная.
                                +1
                                bmp может быть и сжатым
                                  0
                                    0

                                    Да, только эти алгоритмы сжатия на 100% неэффективны для фотореалистичных изображений. Я смутно помню из тех времен, что разница между сжатым и несжатым BMP была на уровне погрешности.

                                      0
                                      Это вы про размер, а про затраты на создание превью?
                                    0
                                    Вроде ещё в Win 95 с Microsoft Plus появилась возможность устанавливать в качестве обоев JPG-файл.
                                      +2
                                      Дык, он-то в растр не в видеокарте же превращается, а на GDI-поверхности, ровно там же, где и BMP
                                        –1
                                        а на GDI-поверхности

                                        Насколько я помню, обоина после установки лежала в отдельном каталоге. В том самом BMP, а сейчас в пошакаленном JPG.
                                          +1

                                          Да нет никакой разницы какой формат файла на диске, при загрузке всё равно HBITMAP получится.

                                          0
                                          А в десятке разве не так?

                                          Кстати, теоретически можно и аппаратную декомпрессию JPG организовать по аналогии с видеофильмами
                                          0
                                          ЕМНИП это в 98 винде появилось, 95 OSR2 с плюсом вроде этого не умела ещё.
                                            0
                                            Умела-умела. Ради этого его, собственно и ставили. И ради FullDrag ещё, правда он и через реестр прекрасно включался.

                                            Кто-то ради обоев (привет BolgenOs :) ), тогда ещё Интернет не у всех был. И ради DriveSpace вместо DoubleSpace, но с этим могли проблемы при загрузке быть из-за нехватки памяти DOS.
                                              0
                                              тогда ещё Интернет не у всех был

                                              У всех не было, если точнее :) В 1997-м году домашних пользователей инета можно было по пальцам считать даже в городах-миллионниках. Да и корпоративные если и худо-бедно уже пользовались, то чаще в оффлайн-режиме (кто-то помнит такое ещё?), а не в онлайн-режиме (то, что мы называем «интернетом» сейчас).
                                        +1
                                        А если на обои поставить файл в 10-40мб размером, то можно было наблюдать Rage Guy лицо у пользователя этой машины.
                                        0
                                        Потому что на древних компах если на рабочем столе было сильно много файлов винда просто не грузилась (проверено)
                                        а что такое сильно много? Можно хотя бы порядок узнать?
                                        +1
                                        Тормозило еще как, но на другой задаче — когда в папке windows/temp скапливалось около тысячи файлов и больше. Тормозило безбожно, потому что всем нужен был новый временный файл.
                                          0
                                          Это и сегодня нередко так.
                                            0
                                            И их всё ещё система не научилась стирать.
                                              +2
                                              Если бы мне давали 10 рублей за каждую прочитанную фразу о том, что чего-то в Windows нет, когда оно есть, я был бы миллионером.
                                              Заголовок спойлера
                                              Да, автоматом с настройками и очисткой темпов.


                                              Я уж молчу про инструмент «Очистка диска», которому всего лишь 20 лет.
                                                0

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

                                                  +1
                                                  Она и показывает. Причём включает сама с базовыми параметрами типа очистки темпа, а пользователю предлагает донастроить. Но только когда места на диске становится действительно мало.
                                                    0
                                                    Могла бы и раньше показывать, это всё же важнее, чем переключение раскладки и установка солитёра с яндекс музыкой. Не просто так появился скрипт Sophia, руками замучаешься отключать в десятке всё ненужное и включать полезное.
                                                      0
                                                      А зачем раньше? Нет, серьёзно. Очищать диск предлагается когда он заполнен.
                                                        +1

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

                                                          –1

                                                          А зачем вы там повыше сделали подмену чистки мусора в темпах на чистку диска?
                                                          Чистить надо мусор, чистить его надо по мере появления, а не дожидаясь полного трешинга метаданных ФС.


                                                          И чистки мусора в винде таки штатной нет, а мест для мусора прибавляется чуть ли не с каждой версией.

                                                            0
                                                            Эм, вообще не понял, что вы несёте, сорян. Какой трешинг метаданных ФС? Какие места для мусора?
                                                              0

                                                              *вычистив очередные тонны мусора из AppData и ProgramData, кеша инсталлера, и прочих интересных мест, собрав воедино разбитые на десятки тысяч частей файлы (не шутка)*


                                                              Да так, херню какую-то. Все хорошо, винда идеальна.

                                                                +1
                                                                Я не говорю что винда идеальна. Но и ваших действий по чистке и сборке абсолютно не понимаю. У меня нет мусора, а файлы собирает стандартный дефрагментатор по какому-то своему расписанию, которого я даже и не знаю.
                                                                  +3

                                                                  Проверьте папку C:\Windows\Installer.


                                                                  Хранящиеся там файлы, может быть, и не совсем мусор — но при обычной работе ОС не нужны, а место занимают. Причём занимают на системном диске, где в эпоху SSD и без них места нет. И на другой диск эта папка нормально не переносится...


                                                                  На моём домашнем компьютере там 1 Гб, на рабочем последний раз было вроде как 10 Гб.

                                                                    0
                                                                    При удалении msi для удаления/обновления программы потребуется найти этот самый msi.
                                                                      0
                                                                      Проверьте папку C:\Windows\Installer.

                                                                      Проверил, ничего лишнего. Да, некоторые нерадивые программы пихают туда полный установщик вместо небольшого с инструкцией для удаления, только для возможности восстановления без дистрибутива на руках.
                                                                      Но в моём случае это 0,5ГБ, что составляет 0,1% от весьма рядового 500 гигабайтного диска.
                                                                      Если вас беспокоит большой размер этого каталога, пишите авторам программ, которые такое наворотили. У меня например самые большие это Inkscape, Oracle VM VirtualBox и Ryzen Master, вместе 300 МБ из 500.
                                                                        0
                                                                        У меня вообще этой папки нет. Как впрочем и этих приложений. Ну кроме Inkscape, но его я из стора ставил
                                                                          +2
                                                                          Заглянул в свою. 12 гигов. На 225-гиговом (номинально 250) диске это чуть больше 5%.

                                                                          Причем 199 файлов строго одинакового размера 65175552 байта. Задумался.

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

                                                                          Посмотрел, что от чего — бааатюшки, все эти 199 от одной проги, Google Earth Pro. Да еще и даты у них идут подряд, с шагом в один день. В некоторые даты и по два файла попадает.

                                                                          Сделал выборочное побайтное сравнение содержимого, несколько раз произвольно выбрав пары для сравнения (в том числе самый старый с самым свежим) — да они вообще идентичны!

                                                                          Ну, Гугл, ну даёт…
                                                                          0

                                                                          У 1С'ников там больше десятка ГБ может скопиться.

                                                                            0
                                                                            Проверьте папку C:\Windows\Installer.

                                                                            Хранящиеся там файлы, может быть, и не совсем мусор — но при обычной работе ОС не нужны, а место занимают.

                                                                            Чисто вопрос, а что у вас в «du -sh /var/cache/apt/archives»?
                                                                            И как давно делали sudo apt-get autoremove --purge?
                                                                            Можно еще заглянуть чего лишнего в /boot

                                                                            Опять же, бОльшая часть «мусора» относится не к ОС а к стороннему софту
                                                                              0

                                                                              Ну вот, кстати:


                                                                              И как давно делали sudo apt-get autoremove --purge?

                                                                              Как сделать аналогичное в винде? Встроенными средствами, не притаскивая непонятные бинари.

                                                                                0
                                                                                Или в MacOS. У нас тут с этим тоже не очень дела
                                                                                  0
                                                                                  Ну давайте скажем, как быстро поставить флаг compress на директории в любом линукс? Ах надо другую файловую систему?

                                                                                  Не нужно искать максимальные отдельно взятые аналоги.
                                                                                  В линуксе обычно используется пакетный менеджер и централизованный репозиторий. Изначально. В винде каждая прога идет со своим инсталлятором, и совсем недавно (по историческим срокам) появился магазин, который все еще не центральный репозиторий.
                                                                                  Поэтому в данном случае это нерелевантный вопрос.
                                                                                    0
                                                                                    Ну давайте скажем, как быстро поставить флаг compress на директории

                                                                                    На ReFS, например?
                                                                                    Ах надо другую файловую систему


                                                                                    Не лезьте в бутылку.
                                                                                    У этого была надежда, что за последние 6 лет развития десятки он что-то упустил.
                                                                                    Но, видимо, нет.

                                                                                      0
                                                                                      Зато на NTFS завезли кучу новых алгоритмов. Правда мега криво и без GUI ))
                                                                                        0

                                                                                        Может, они догадаются когда-нибудь спереть zstd?
                                                                                        Слабая надежда, конечно…

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

                                                                                            Однажды мы с вами имели довольно длинное обсуждение, да. И потом вы еще вспоминали разок.

                                                                              +2

                                                                              У вас вроде и темпы как у нормальных ОС — в рамдиске.

                                                                                +1
                                                                                Пойти ник что ли поменять, а то узнавать начали.
                                                                              +1
                                                                              *вычистив очередные тонны мусора из AppData и ProgramData, кеша инсталлера, и прочих интересных мест, собрав воедино разбитые на десятки тысяч частей файлы (не шутка)*

                                                                              Это были файлы именно от винды или от разных programdata?
                                                                                0

                                                                                Так ProgramData не пустая сразу после чистой установки. Есть в ней файлы от винды или нет?

                                                                                  0
                                                                                  /usr тоже не пустая после чистой установки, хотя казалось бы usr = user, а не систем.
                                                                                  Не нужно тянуть FSHS в виндовс и наоборот
                                                                  0

                                                                  В более старых версиях настройка есть? Конкретно в 7/2008?

                                                                  0
                                                                  «Мы освободили 4,76 МБ свободного места на протяжении последнего месяца».
                                                                  И навсегда загадили 4,76 ГБ за отчётный период.
                                                                    +1
                                                                    Смешно, но нет. У меня просто темпы на рамдиске, поэтому ему чистить нечего ))
                                                                      0
                                                                      У меня тоже, на одном из компьютеров. ОЗУ дорогая и сама себя не купит :(
                                                                      Ситуация с временными файлами удручает — наверно 2/3 не стираются автоматически забывчивыми программами, заполняют небесплатное пространство на ssd, уменьшая тем самым количество пустых ячеек и приводя к деградации сначала скорости записи, а потом и самих ячеек из-за частой интенсивной записи в остающиеся свободными. Пример неудачного SSD — Crucial BX240, из-за отсутствия dram-кеша и особенностей прошивки 10 экземпляров периодически вынужденно «регенерирую» — делаю очистку из родной утилиты, тогда восстанавливается производительность, падающая критически вплоть до невозможности загрузки системы.
                                                                        0
                                                                        Если бы не рамдиск, то очистка раз в месяц меня бы полностью устроила.
                                                                        Пример неудачного SSD — Crucial BX240, из-за отсутствия dram-кеша

                                                                        Такой мусор не стоит и покупать. Оба мои SSD со временем не деградируют по скорости, хотя они далеко не самые дорогие, скорее даже «топчик из дешёвых».
                                                                    +1
                                                                    Эмм, у меня линукс при выключении автоматом очищает /tmp, почему винда до сих пор не научилась чистить %USER%\Temp всякие при выключении?
                                                                      0
                                                                      Потому что это может поломать работу некоторых программ, например, установщиков.
                                                                        0
                                                                        Ну так можно это сделать на SHUTDOWN событие (или как оно там называется), а не на REBOOT.
                                                                          +2
                                                                          На данный момент в этом нет смысла, ну кроме как угодить пользователям Linux, сделав как у них. Автоматическая очистка есть и она нормально работает.
                                                                          +2
                                                                          Как и переполнение системного диска нечищенным мусором.
                                                                          Что вообще временные файлы делают на системном диске?
                                                                            0
                                                                            Давайте сначала исходить из того, что сейчас даже само понятие «системный диск» уходит в прошлое, рядового пользователя такой абстракцией, как «диск», не напрягают. И соответственно, по умолчанию считается, что на компьютере доступный пользователю раздел диска может быть всего один.
                                                                            Что касается его переполнения, ну, мимо Windows это не проходит, и она заранее предупреждает, что неплохо бы эту байду почистить. От пользователя всего-то нужно прочесть уведомление и согласиться.
                                                                              0
                                                                              Увы и ах. Даже не диск, а то что Windows из операционной системы превращается в прошивку компьютера, в некий неудобоваримый блоб.
                                                                                +2
                                                                                Этим не только Windows страдает, а вообще любая современная ОС. А Линукс, так тот вообще в 99% своих инсталляций сугубо прошивка :)
                                                                              +2
                                                                              Что вообще временные файлы делают на системном диске?

                                                                              А где вы найдёте пользователя с более чем 1 диском? Они стремительно вымирают. Ну а рамдиск тем более не все могут себе позволить.
                                                                                0
                                                                                Что мешает ОС создать диск при установке? Сейчас Windows создаёт как минимум один лишний раздел, зачем-то пряча там загрузчик и среду воссановления (не от обновлений ли своих?). Да и создать динамический рамдиск для временных файлов ОС должна быть в состоянии, вместо насилования ни в чём не повинного ssd записью десятков тысяч файлов, лишь некоторые из которых понадобятся повторно.
                                                                                  0
                                                                                  Очевидно, мешает необходимость зарезервировать под него некоторое количество гигабайт дискового пространства, которого с одной стороны, неизвестно, будет ли достаточно в будущем, с другой стороны, будет явно с избытком прямо сейчас.
                                                                                  вместо насилования ни в чём не повинного ssd записью десятков тысяч файлов

                                                                                  А что с тем SSD будет? Если вы на нём не будете разворачивать базу данных в продакшен, или что-то такое, его ресурса хватит вам лет на 30, даже в самых жёстких сценариях десятой винды.
                                                                                    0
                                                                                    Хорошо, что мешает сделать динамический рамдиск?
                                                                                    С SSD будет как минимум деградация производительности из-за дефицита свободных ячеек на системах, где TRIM не работает.
                                                                                      0

                                                                                      Проще TRIM починить (и полезнее).

                                                                                        0
                                                                                        Не всегда возможно, к примеру до сих пор в строю компьтеры, не поддерживающие ahci.
                                                                                        +4
                                                                                        Рамдиск мешают сделать две вещи:
                                                                                        1. Для него нужен, кхм, рам. Один из самых ценных ресурсов в компьютере, куда более ценный, чем место на диске
                                                                                        2. Рамдиск не решает одну из основных задач временной папки — накачать туда обновы приложений и установить их при следующей перезагрузке
                                                                                          –1
                                                                                          Так ОС виднее, что куда распихивать. Обновы — на диск (но не забыть потом всё потереть), а одноразовый треш — в ОЗУ, и накапливаться не будет, и вероятность зарождения параллельной жизни в многочисленных папках временных файлов уменьшится.

                                                                                          Ну работать в условиях дефицита ОЗУ можно, но не хочется. ОЗУ не только самый дорогой, но и самый ликвидный ресурс, толку от мощного процессора и ssd, если ОЗУ в обрез. Кстати, на устаревшую (а таких в использовании всё ещё немало) систему сейчас установить хотя бы 4 ГБ ОЗУ вовсе недорого, двухгигабайтные планки в избытке по низким ценам. 4-8 ГБ планки да, не падают пока. В принципе темп роста объёма ОЗУ на среднем офисном компьютере за последнее десятилетие снизился.
                                                                                          Но у современных браузеров весьма хороший аппетит к ОЗУ, заметно превосходящий объём временных файлов, скачанных в той же сессии.

                                                                                          Кстати, недавно по ошибке загрузил Windows 10 на 0,5 ГБ ОЗУ — в системе с 2+8 ГБ был установлен Ramdisk на 1,5 ГБ, вынул не тот модуль. Десятка загрузилась, но весьма неторопливо.
                                                                                            +2
                                                                                            Проблема в том, что ОС не знает, одноразовый там треш или не одноразовый, что из них обновы, а что забытый фуфел. Её собственные обновы вообще в другом месте лежат, а временная папка, это сервис для сторонних приложений, их временных файлов и их инсталляторов/обновляторов. И гадит, соответственно, туда отнюдь не ОС.
                                                                                              0
                                                                                              Ну ОС гадит тоже неплохо. К тому же, есть служба установщика Windows — не зря ведь делали централизованную установку, она должна быть в курсе, какие временные файлы были созданы в процессе установки ПО и не удалены забывчивыми инсталляторами.
                                                                                              Но складывать всё это в профиль пользователя кмк не стоит. Там должны быть персональные настройки, ключи, но не тонны кода.
                                                                                                0
                                                                                                Там должны быть персональные настройки, ключи, но не тонны кода.

                                                                                                Надеюсь от хрома вы уже отказались.
                                                                                                  0
                                                                                                  FireFox в основном, а что с Хромом?
                                                                                                    +1
                                                                                                    Хром ставится в профиль, привет тонны кода в профиле.
                                                                                                      +1
                                                                                                      И не только он, к сожалению. Полагаю для кода в системе достаточно правильных папок.
                                                                                                  0
                                                                                                  Ну вот не может винда понять, что удалять после установки приложений. Одна из проблем — различные общие зависимости у разных приложений. Вот установила условная игра нужный ей DX, нужно ли его удалять при удалении игры?

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

                                                                                                  В том числе чтоб решить эту проблему хотя бы частично MS и сделала MSIX — пакетированые приложения, которые срут ограничено, и имеют явно прописанные зависимости. Но польностью это проблему всё равно не решает. На маке уже давно пакетированные приложения и срут во все щели, причем совсем не очевидные. Не даром CCleaner появился впервые именно там.
                                                                                                    0
                                                                                                    Внезапно переполнение диска тоже может привести к простою.
                                                                                                    Для крупных компаний по крайней мере есть IT отдел, политики, не позволяющие устанавливать откровенный шлак, тестирование конфигураций перед раскатыванием.
                                                                                                    А домашние пользователи часто просто не ориентируются на своём накопителе. Основное хранилище файлов — рабочий стол, на который складываются снятые фото и видео и пару сезонов любимого сериала, никогда не чистятся временные файлы, папка закачек, корзина. Пока система не начинает устанавливать очередные приложения на несистемный диск. В итоге антивирус еле прережёвывает профиль пользователя, а какой-нибудь замечательный пакет монструозного ПО загружается с диска D на стареньком винчестере, скорость которого раза в два меньше, чем C, тоже не блещущего производительностью. Старый забытый сериал при этом дежит мёртвым грузом на C.
                                                                                                      0
                                                                                                      Внезапно переполнение диска тоже может привести к простою.
                                                                                                      Для крупных компаний по крайней мере есть IT отдел, политики, не позволяющие устанавливать откровенный шлак, тестирование конфигураций перед раскатыванием.
                                                                                                      Ну вот IT отдел и пришел в МС с такой проблемой. Переполнение диска не случается одновременно у всех пользователей и предсказуемо. Тут IT-шники вместо того чтоб удалять софт, лицензию на который они не собираются продлевать, запрещают его запускать.

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

                                                                                                        А если уж Windows не понять, что можно удалять, а что нет (хотя для чего бы нужна была папка временных файлов?), то CCleaner — и подавно.
                                                                                                          +1
                                                                                                          то CCleaner — и подавно.

                                                                                                          Поэтому он и не нужен.
                                                                                                0
                                                                                                Так ОС виднее, что куда распихивать. Обновы — на диск (но не забыть потом всё потереть)

                                                                                                Откуда ОС знает что кому нужно распихивать?
                                                                                                Вот некоторые сервисы и антивирусы хотят перезагрузки. Откуда ОС должна знать о потрохах какого-то антивируса?
                                                                                                  –2
                                                                                                  Так для антивирусов тоже МС давно ярмо API придумала, миио него антивирус работать не сможет. А для чего в системе лишний API, если через него нельзя обмениваться информацией?
                                                                                                    –2
                                                                                                    Что именно вызывает неприятие и позывы к минусованию? В Windows нет API для взаимодействия с антивирусами?
                                                                                                    Или через API нельзя передать ОС список файлов к удалению?
                                                                                                      +1
                                                                                                      Или через API нельзя передать ОС список файлов к удалению?

                                                                                                      что в таком случае мешает самим удалить?
                                                                                                        –2
                                                                                                        Инсталлятор не может удалить сам себя (может, конечно, но далеко не все заморачиваются). Но может поставить список файлов в очередь на удаление при следующей перезагрузке, например.
                                                                                                          +2

                                                                                                          А причём тут "API для взаимодействия с антивирусом"?

                                                                                                            –2
                                                                                                            "Откуда ОС знает что кому нужно распихивать?
                                                                                                            Вот некоторые сервисы и антивирусы хотят перезагрузки. Откуда ОС должна знать о потрохах какого-то антивируса?"
                                                                                                              –3
                                                                                                              Минусатор, полегчало?
                                                                                                                0
                                                                                                                Потому что нет «API для антивирусов»
                                                                                                                Есть просто API для установщиков. Но его возможностями программа может пользоваться, может не пользоваться. Обязанность ОС — обслужить запросы установщика, а не догадаться что программист недоделал, потому что недочитал рекомендации или поленился их выполнить по другим причинам.
                                                                                                                  –2
                                                                                                                  Да неужели?
                                                                                                                  Со времён XP/2000 есть. Именно с тех пор антивирус в системе работает исключительно с её благосклонного соизволения.

                                                                                                                  Вот посвежее.
                                                                                                                    +1

                                                                                                                    Первый из найденных вами API — это просто способ, которым Microsoft Office (а вовсе не Windows!) запрашивает сканирование конкретных документов.


                                                                                                                    Второй из найденных вами API — это API Защитника Windows, т.е. одного конкретного антивируса; и относится оно к взаимодействию антивируса с приложениями, а никак не к взаимодействию ОС и антивируса.


                                                                                                                    Ни о каком "антивирус в системе работает исключительно с её благосклонного соизволения" в обоих случаях и речи нет. И уж тем более найденные вами API никоим образом не касаются вопросов установки программ.

                                                                                                                      +3
                                                                                                                      Ваши ссылки — это не «API для антивирусов» в том понимании, о котором тут идёт речь. Но на самом деле вы правы, специальный API для антивирусов в винде есть. Он закрытый для простых смертных, доступен только вендорам антивирусов. Но этот API предоставляет прямой доступ к сканированию памяти и других ресурсов компьютера. При этом там нет средств для того, чтобы антивирус держал ОС в курсе всех своих дел. Наоборот, он выступает в роли «чёрного ящика», чтобы нежелательные приложения не могли почерпнуть из него лишнюю информацию.
                                                                                                                        –2
                                                                                                                        Спасибо за поддержку.
                                                                                                                        То, что антивирусный API есть ещё со времён XP я знал, как и то что антивирус без его использования в Windows работать не сможет.
                                                                                              +2
                                                                                              Что мешает ОС создать диск при установке?

                                                                                              Чтобы что? Чтобы на одном из них вечно не хватало места, когда на другом вагон?
                                                                                              Вы предлагаете решение для несуществующей проблемы.
                                                                                                +2
                                                                                                То, что создать диск нельзя, а раздел — можно, но зачем лишние разделы?
                                                                                                Плюс временные файлы вполне могут быть востребованы после перезагрузки.
                                                                                                Плюс это проблема программ, что они хотят сохранять что-то в файлы, а не просто держать в памяти. И ssd никто не насилует — они легко выдерживат такие нагрузки.
                                                                                                  –1
                                                                                                  По моему опыту гарантированно легко выдерживают любые нагрузки только серверные ssd. Рад, что Вам не попадались другие случаи.
                                                                                                    +1
                                                                                                    Серверные ssd выдерживают не любые, а серверные нагрузки
                                                                                                    Домашние ssd выдерживат домашние загрузки.

                                                                                                    И уж процесс установки нескольких десятков софта с распаковкой промежуточных файлов в tmp директории выдерживают и те и другие.
                                                                                                      0
                                                                                                      Серверные ssd кроме iops'ов отличаются ещё повышенным ресурсом ячеек и улучшенной подсистемой питания, не позволяющей в частности получить внезапные провалы по питанию, нередко приводящие к повреждению прошивки контроллера.
                                                                                                        +2
                                                                                                        Основное отличие серверных SSD это возможность продолжительное время работать под максимальной нагрузкой без просадки своих характеристик. Домашним же нужно время на всякую там внутреннюю кухню.
                                                                                                        Но установку и удаление программ выдерживают любые диски, кроме разве что китайских, где внутри MicroSD посредственного качества.
                                                                                                          +1
                                                                                                          домашний SSD в 1 тб может иметь ресурс повыше чем серверный на 256gb, особенно учитывая разницу в нагрузках. В результате real time работы будет больше.

                                                                                                          По питанию — да что ж вы все считаете что домашний комп это какое-то унылое говно на соплях?

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

                                                                                                            Большинство ПК это организации, а у меня на работе например стоит меметичный VX. Впрочем у коллеги вентилятор на процессорной башне не в ту сторону дует, так что мой блок ещё фигня ))
                                                                                                              0
                                                                                                              В организациях обычно используется централизированое хранение и бэкапы, поэтому если что-то упадет — не критично.
                                                                                                              В других организациях вообще берутся ноутбуки.
                                                                                  0
                                                                                  Сколько себя помню, каждая новая WINDOWS начина с 95 работает медленнее предыдущей. В 200х у меня был 486DX4 16MB ram, и я развлекался всякими перестановками венды. После месяца работы на WIN95 osr2 даже на голой и чистой Win98 было заметно что интерфейс не такой шустрый как раньше. И сейчас просто поставте WIN10 и WIN7 на один и тот же ПК и заметете разницу даже в том как система заходит в мой компьютер
                                                                                    +1
                                                                                    98 была медленнее хотя бы из-за того, что там проводник был на базе IE сделан. На слабых системах падение быстродействия было заметно. Можно было вклячить туда проводник от 95 (98lite).

                                                                                    А на счёт семёрки и десятки на одном компьютере — тоже зависит от железа. У меня «мой компьютер» открывается моментально что дома, что на работе. Если семёрка и будет открывать его быстрее, то я просто не увижу разницы. На работе, правда, бывает задержка на раскрутку жестких дисков (дома я от них давно избавился).
                                                                                      0
                                                                                      Поскольку я взял AMD raven ridge на старте продаж, мне пришлось поставить WIN10, а потом я поставил на тот же комп windows 7 и О ЧУДО оказывается задержка при открытии того же «мой копмьютер» к которой привык и даже не замечал ее, оказывается в win 7 она ЗНАЧИТЕЛЬНО меньше, может в ms это будет выглядеть не так круто, но по ощущениям на win 10 открывает за 1 секунду, а на win 7 за 0.5 сек вроде чего переживать то, а по факту еще как заметно
                                                                                      0
                                                                                      Сколько себя помню, каждая новая WINDOWS начина с 95 работает медленнее предыдущей.

                                                                                      На одном и том же железе, или на актуальном на момент выхода системы? Первое неизбежно, второе — сомнительно.


                                                                                      И сейчас просто поставте WIN10 и WIN7 на один и тот же ПК и заметете разницу даже в том как система заходит в мой компьютер

                                                                                      Ставить на один и тот же компьютер при минимум 6 годах разницы в датах выпуска ОС — странновато, не находите?


                                                                                      Вопрос не в том, что она медленнее в абсолютном выражении — это обычно нормально, а в том, чем это обосновано, даёт ли это какую-то компенсирующую это ухудшение прибавку функциональности.


                                                                                      Торвальдс как-то говорил, что каждая следующая версия Linux примерно на 1% медленнее предыдущей, и это удручает, хоть и неизбежно. Это около 4% в год. А ведь в Linux (ядре) тупые красивости не вводят.

                                                                                        –1
                                                                                        Вот в том то и прикол, разница в поддержке софта-железа между win7 и win10 чисто маркетинговая, а разница в скорости очень даже ощущается
                                                                                          +2
                                                                                          Особенно просмотрщик фотографий в десятке удивляет, даже на мощном компе с ssd открывается возмутительно долго, про обычный офисный даже не заикаюсь, распечатать и посмотреть быстрее. Приходится через реестр включать «старый», который работает молниеносно, по сравнению с «новым».
                                                                                            +2

                                                                                            Да фиг с ним, с открытием — но он же ещё и не умеет переключаться на следующую/предыдущую фотографию!

                                                                                              +1
                                                                                              Да! А 15 секунд ждать загрузки для просмотра следующей — это уже за гранью добра и зла.
                                                                                              Кстати, встроенный даже в семёрку всё чаще стал говорить «Вероятно на компьютере установлено недостаточно памяти».
                                                                                              IrfanView в помощь, но десятка периодически сбрасывает файловые ассоциации.
                                                                                                0
                                                                                                но десятка периодически сбрасывает файловые ассоциации

                                                                                                Просто нужно лишить её выбора.
                                                                                                Заголовок спойлера
                                                                                                Выбор браузера из одного пункта Firefox
                                                                                                  +2
                                                                                                  Лишал, и неоднократно. Ещё в IrfanView есть удобная внутренняя привязывалка, скажем, «только изображения» означает привязку ко всем известным графическим форматам. Но Windows спонтанно сбрасывала ассоциации, радостно сообщая об этом.
                                                                                                    +1
                                                                                                    Эм, если некуда сбрасывать, винда и не сбросит.
                                                                                                    Ну и привязывать лучше с самого начала самой виндой. Как раз вмешательство сторонних утилит в этот интимный процесс винда и не любит.
                                                                                                      0
                                                                                                      Винде некуда сбрасывать? Да у неё сотни задач в планировщике по запуску всяких «полезностей», а ещё механизм обновления.
                                                                                                      Есть инсталлятор стандартной смотрелки в папке Windows.
                                                                                                      Мне помогло только искоренение папок. Позже удалил все UWP приложения, до которых дотянулся. На одном из компьютеров выключил системный планировщик.
                                                                                                      Пока ещё это «этот компьютер» — пусть уже и не «мой компьютер», но ещё и не «наш компьютер», винда пусть бреется со своими предпочтениями.
                                                                                                        0
                                                                                                        Винде некуда сбрасывать?

                                                                                                        Ну да. У моей просто нету выбора.
                                                                                                        На одном из компьютеров выключил системный планировщик.

                                                                                                        А потом люди жалуются на тормоза и замусоривание ((
                                                                                                          0
                                                                                                          А Вы полюбопытствуйте, что там за задачи.
                                                                                                          У меня на том компьютере после отключения планировщика общий объём записи за неделю составил 300 МБ (интернета там нет, да).
                                                                                                            +2
                                                                                                            Там сервисное обслуживание. Ну не буду же я вручную запускать дефрагментацию дисков например?
                                                                                                            У меня на том компьютере после отключения планировщика общий объём записи за неделю составил 300 МБ

                                                                                                            А это что-то значит? У вас запись на диск денег стоит?
                                                                                                              0
                                                                                                              Значит. Особенно когда задачи по оптимизации (хоть бы ещё чего полезного) по объёму записи на порядок превосходят задачи пользователя.
                                                                                                                +1
                                                                                                                И что? Мне вообще плевать сколько пишется на диск. У меня у старого SSD за 8 лет службы ушло 2% ресурса. Он по сути вечный. Я уж молчу про жёсткие диски с практически бесконечным ресурсом перезаписи.
                                                                                                                +1

                                                                                                                А если у вас SSD — накой дефрагментация вообще? А почти всё остальное сервисное обслуживание — в лучшем случае сброс реестра из памяти, и то пользовательского, а не системного.
                                                                                                                Запись стоит денег, если диск SSD, так как жрет его невосполняемый ресурс.

                                                                                                                  0
                                                                                                                  К тому же некоторые файлы пишутся чаще других, в реестр Windows, например, идёт постоянная запись, в основном нерелевантного мусора, пухлящего реестр, без которого системе жилось бы легче. Запись одного байта влечёт необходимость перезаписи блока флеш-памяти, свободные блоки дефицитны, приходится чистить занятые. В итоге имеем постоянную внутреннюю активность ssd, отнимающую iops'ы у системы, приложений и пользователя и сильно фрагментированный реестр, что, казалось бы, не проблема на ssd, но снижающаяся со временем скорость поиска по реестру говорит об обратном.
                                                                                                                    0
                                                                                                                    В том числе поэтому МС продвигает пакетированные msix приложения. Такое приложение меняет только локальный кустик реестра (в отдельном файле), и пока приложение не запущено, этот кустик не грузится
                                                                                                                      +2
                                                                                                                      Поздно пить боржоми. В прошлом веке они топили за запись в реестре всех параметров (Pentium же избыточно быстрый, ага), против локальных .ini файлов. Концепция сменилась…
                                                                                                                        +1
                                                                                                                        проблема ini файлов в том, что они текстовые, а реестр типизированный.
                                                                                                                          +3
                                                                                                                          И в чём проблема? Поиск нужного раздела/параметра/значения в разжиревшем типизованном реестре идёт гораздо дольше, чем поиск нужного текстового файла и параметра в нём. Нужна типизация — берём xml, уже не так обозримо, но ещё вменяемо по производительности.
                                                                                                                          По безопасности ini файлы не слишком уступают реестру.
                                                                                                                          Повреждение реестра равносильно гибели всей системы.
                                                                                                                          Линукс живёт без реестра припеваючи.
                                                                                                                          «МС продвигает пакетированные msix приложения. Такое приложение меняет только локальный кустик реестра (в отдельном файле), и пока приложение не запущено, этот кустик не грузится» — отчего же?..
                                                                                                                            –2
                                                                                                                            Ага. Aliens: Colonial Marines тоже жил без типизированных настроек. только не долго.

                                                                                                                            отчего же?..
                                                                                                                            отчего же, что?
                                                                                                                              +1
                                                                                                                              Поиск нужного раздела/параметра/значения в разжиревшем типизованном реестре идёт гораздо дольше

                                                                                                                              Да ладно?
                                                                                                                              Нужна типизация — берём xml, уже не так обозримо, но ещё вменяемо по производительности.

                                                                                                                              Смешно. Жирнее и тормознее xml трудно что-то придумать. И вы его предлагаете на замену по сути специализированной базы данных.
                                                                                                                              Повреждение реестра равносильно гибели всей системы.

                                                                                                                              Только он не повреждается на корректно работающем железе. Да и механизмов его восстановления и резервного копирования достаточно.
                                                                                                                              Линукс живёт без реестра припеваючи.

                                                                                                                              Только в Gnome его уже завезли. И чёрте знает сколько программ изобретают свои методы хранения данных.
                                                                                                                                0
                                                                                                                                Нет, мне типизация не нужна. Я предлагаю не писать мусор в реестр тоннами.
                                                                                                                                  0
                                                                                                                                  Да без проблем, ваши любимые INI файлы никто у вас не отбирает, и уж тем более никто вас не заставляет писать мусор в реестр.
                                                                                                                                    0
                                                                                                                                    Да там и без меня всего хватает. 200 МБ, из них 100 только Software. Сколько из этого не мусор?
                                                                                                                                      0
                                                                                                                                      Примерно 0, относительно объёма диска. 200 мегабайт. 200 мегабайт, блин! Было бы из-за чего волноваться. У меня в телефоне больше мусора, хотя список «удалённых» приложений насчитывает больше 100 позиций. А уж на сервере linux я объём мусора просто не могу оценить, не знаю, что там нужное, а что лишнее.
                                                                                                                                        0
                                                                                                                                        Примерно 0 это было бы, если бы реестр весь держался в оперативке, что вовсе не так. Или если бы это была простая БД, а не доступная исключительно через системные вызовы. Или если бы распухание реестра и тысячи повторных мусорных обращений к нему в секунду не вели к замедлению системы, что также отнюдь не так.
                                                                                                                                          +1
                                                                                                                                          Даже не знаю что сказать. Рекомендую вам сменить своё устаревшее 20 лет назад оборудование, оно не надёжно и не отвечает современным требованиям по производительности. Ибо у меня за те же 20 лет ни разу не было зависания из-за реестра.
                                                                                                                                            +1
                                                                                                                                            Спасибо, моё оборудование меня устраивает. Но знаю пользователей, работающих на Windows 10 на винчестере и с двумя гигабайтами ОЗУ. Знаю самописное десятилетиями ПО, работающее на Windows 2000, апгрейд по плану сразу на 3000.
                                                                                                                                          0
                                                                                                                                          Расскажу историю. Жил-да-был сервер терминалов под Win2003. Старенький, но вполне рабочий. Потом он уехал с железа в виртуалку, но работал себе и работал. И в один прекрасный день его заглючило. Прямо вот переколбасило. То юзеры зайти не могут, то свежесозданный профиль ломается. Что за притча? Начал смотреть. Не сразу до меня дошло, что ветки реестра у пользователей выросли до нескольких сотен мегабайт у каждого(!), а общий размер реестров уехал сильно за 16Гб (юзеров было более полусотни) и тупо не влезал в память (в 2003 суммарный размер реестра в памяти ограничен) при большом кол-ве сессий. Следствие показало, что драйвер HP UniPrint гадил в ветку \Software каким-то жуткими количеством рандомно сгенерированных UUIDов, на каждый из которых создавалась подветочка реестра и не удалялась, конечно же.
                                                                                                                                    0
                                                                                                                                    Смешно. Жирнее и тормознее xml трудно что-то придумать. И вы его предлагаете на замену по сути специализированной базы данных.

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

                                                                                                                                      –2
                                                                                                                                      Эскалация прав пользователя не слишком хитрый трюк в Windows. Большинство программ вполне могли бы обходиться без использования реестра, а от возможности более простого изменения их настроек безопасность системы не обязательно сильно пострадала бы кмк.
                                                                                                                                        0

                                                                                                                                        Э-э-э, а причём тут вообще эскалация прав пользователей?

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

                                                                                                                                            Я всё ещё не понимаю к чему вы клоните. Возможность редактирования прав как-то ускоряет работу реестра или что?

                                                                                                                                              –2
                                                                                                                                              Нет, а замусоривание совершенно ненужными параметрами сильно замедляет, и увеличивает вероятность сбоев. Можно было хотя бы разбить большие разделы на меньшие, к примеру, выделить из Software раздел, отвечающий за систему и околосистемное ПО, отдельно прикладное, от функциональности которого работоспособность системы никак не зависит.
                                                                                                                                              Неоднократно встречались случаи, когда из-за дефицита пространства ни системном диске повреждался именно реестр, т.к. в него идёт постоянная запись и велика вероятность его повреждения при зависании. Да и сектора протирались до дыр под реестром на HDD, условно конечно. Причём записывались явно не жизненно важные для системы параметры.
                                                                                                                                                0
                                                                                                                                                Можно было хотя бы разбить большие разделы на меньшие

                                                                                                                                                Как будто подобное разбиение не увеличит вероятность сбоев.
                                                                                                                                                Вы пишите про какие-то экстремальные ситуации, типа место на диске кончилось или сектора на HDD протёрлись. Я с такими не встречался.
                                                                                                                                                  0
                                                                                                                                                  Возможно потому что знаете, что где и зачем лежит и своевременно предпринимаете нужные действия для упреждения подобных ситуаций. А многие пользователи не в курсе и начинают удалять ярлыки с рабочего стола, когда система им жалуется на переполнение системного диска вместо удаления неактуальных точек восстановления и очистки кеша браузера и папки закачек.
                                                                                                                                                    0
                                                                                                                                                    Нет, рецепт намного проще. Я купил диск на 500 гигабайт и весь его отдал системе. Никаких разделов и прочих искусственных ограничений.
                                                                                                                                                      0
                                                                                                                                                      Решение на века. Кстати, там точно нет других разделов?
                                                                                                                                                        0
                                                                                                                                                        Только те, что создал установщик, очевидно же. И мне всё равно, что он там насоздавал.
                                                                                                                                        0
                                                                                                                                        в то время как небольшой XML читается в память целиком и там парсится.

                                                                                                                                        Но ведь реестр не небольшой. И для своих размеров работает вполне себе нормально, обеспечивая, как вы правильно уточнили, разграничение прав, без которого во многопользовательской ОС делать нечего.
                                                                                                                                          0
                                                                                                                                          200 МБ — небольшой? На компьютере, не отягощённом неординарным ПО. В реестр постоянно пишутся параметры, без которых система вполне просуществует вечно.
                                                                                                                                          Разграничение прав подтверждает правило «что удобно, то небезопасно», с лёгким уклоном в удобство.
                                                                                                                                          Скорость могла бы быть и повыше.
                                                                                                                                            0
                                                                                                                                            Но ведь реестр не небольшой.

                                                                                                                                            Но ведь никто не предлагает запихнуть его в один XML файл!

                                                                                                                                      0
                                                                                                                                      С тем, как сейчас говнокодят (аааа, сроки, надо, срочно, маяк-маяк и в продакшен) тормоза от парсинга .ini файлов выглядели бы просто смешными. Кстати говоря, в Linux кмк конфиги до сих пор по большей части в виде текстовых файлов…
                                                                                                                                        0
                                                                                                                                        Кстати говоря, в Linux кмк конфиги до сих пор по большей части в виде текстовых файлов…

                                                                                                                                        Ну и что?
                                                                                                                                          0
                                                                                                                                          Дык, в линуксе это почему-то особо не мешает производительности.
                                                                                                                                            0
                                                                                                                                            Откуда вы знаете? Нет же варианта Linux со всеми конфигами в аналоге реестра.
                                                                                                                                              0
                                                                                                                                              Ну вот сейчас прошерстил — бинарников в домашнем каталоге и /etc толком не нашел (кроме огнелиса, но он так везде делает и Steam-а). systemd не смотрел, т.к. не использую его.
                                                                                                                                                +1
                                                                                                                                                Поиск параметра в реестре, экспортированном в текстовый файл в текстовом редакторе Far Manager'а занимает заметно меньше времени, чем в regedit.
                                                                                                                                                  0
                                                                                                                                                  Реестр обычно используют другим способом. А получения значения чётко указанного параметра в реестре будет быстрее, чем в 100 мегабайтном текстовом файле.
                                                                                                                                                    0
                                                                                                                                                    Если ещё бы не тысячи лишних повторяющихся запросов на чтение/запись к реестру от ПО и самой ОС, и если бы они обрабатывались многопоточно.
                                                                                                                                                      0
                                                                                                                                                      Ну есть они, и что? Не могу понять, зачем вы это пишете.
                                                                                                                                  0
                                                                                                                                  А если у вас SSD — накой дефрагментация вообще?

                                                                                                                                  Реже, но нужна. Сильно фрагментированная файловая система работает медленнее и требует больше записей для тех же действий. Поэтому редко, но она запускается.
                                                                                                                                  А так да, большинство запусков «дефрагментации» это банальная отправка TRIM, чтобы напомнить диску, где есть пустые блоки, если он вдруг их пропустил во время интенсивной работы.
                                                                                                                                  Запись стоит денег, если диск SSD, так как жрет его невосполняемый ресурс.

                                                                                                                                  Сначала исчерпайте этот ресурс, а уж потом говорите. В контексте среднего пользователя его можно принять за неограниченный.
                                                                                                                                    –1
                                                                                                                                    Тут КМК нужно лучшее понимание системой особенностей ssd.
                                                                                                                                    Ресурс ресурсом, а сброс прошивки в результате некорректного её поведение и окирпичивание накопителя — не редкость.