Cheb's Home Page
 
 
 
Orphus system

Cheb's Home Page

Главная
Cheb's Game Engine Косметическая подтяжка Quake II
Штошник на ушах
 

 

Приложения и утилиты моей выделки

CacheCastrator

Ускоспециализированный укротитель Выни XP

Скачать (44K)

Дано:

1. система с XP, оперативки в обрез хватает для работы всех программ (браузер, почтовик, офис, и прочая, и прочая, и прочая). В фоне работает качалка (DC++), которой я качаю аниме у соседей по локалке, а они качают у меня Сэйлормун.

2. Виндовс - дура, и работает с ресурсами по принципу "заставь дурака богу молиться - он себе лоб расшибёт" (есть вечные ценности, которые не меняются ещё со времён 95-й).

Получаем:

1. Как только начинается работа с большим файлом (индексирование, скачка, закачка, просмотр AVI), Винда бросается увеличивать Святой Файловый Кэш, изо всех сил стараясь упихнуть в него файл целиком. Всё бы ничего, но при этом она, чтобы освободить оперативную память, спихивает в своп-файл все программы, и даже часть собственного ядра, и не останавливается, пока кэш не займёт всю память минус 100 мегабайт (а самой Выни для нормальной работы нужно не меньше 180!). Я специально проверял - при апгрейде оперативки с 256 до 512, пиковое значение кэша выросло со 150 до 400.

2. Когда всё спихнуто в своп и утрамбовано, Винду начинает колбасить и сосисить, реакции на простейший клик мышкой приходится ждать минуты по три, и даже Диспетчер Задач впадает в кому.

3. Выявленный мною ранее закон свопинга гласит, что своп идёт на 1/10 от пропускной способности винчестера (из-за фрагментации). Посчитайте сами, сколько она вам будет вытаскивать обратно в память все эти 400 мегабайт, на скорости от 0,5 до 1 мегабайта в секунду. Два раза можно чай с булочкой попить.

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

Решение:

Ограничить! Вправить этой дуре мозги! Не позволять ей отводить на файловый кэш больше десятой части оперативной памяти!

...увы, это только в 98-й было легко: пара магических строчек в win.ini - и зверь укрощён. ИксПи - это вам не хомячок. Это тигра.

Всё, что я нашёл - это программа CacheSet, позволяющая просмотреть параметры файлового кэша и задать его предельное значение. Увы, но заданные ей лимиты Вынь ИксПи воспринимает, как необязательные рекомендации. И плюёт на них, когда видит большой файл (кэш для неё - это СВЯТОЕ!)

...так что, пришлось мне, именитому переводчику, отрываться от написания своего фанфика, брать исходники CacheSet в зубы, и писать более агрессивную версию, которая два раза в секунду проверяла бы, не раздулся ли кэш, и давила бы, ДАВИЛА, ДАВИЛА его на*#@$!!!

Модификация:

Если захотите улучшить, или поправить - исходник прилагается, компилировалось на FreePascal. Если не задавать кондишнл silent - получите "говорливую" версию с консолью.