Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26148
Рейтинг: 2126
#1: 2021-12-11 02:43:49 ЛС | профиль | цитата
Наверное многие сталкивались с проблемами Win10 в заполнении почти всей памяти кэшем, особенно сильно от переполнения системного кэша страдают игры. Есть несколько разновидностей программ, позволяющих чистить системный кэш -- есть ручные (такие как RAMMap.exe от Марка Русиновича, но у неё нет командной строки), есть работающие через командную строку (такие как EmptyStandbyList.exe от wj32), есть автоматические (такие как Intelligent Standby List Cleaner от wagnardsoft). Но все они имеют одно, но не имеют другого. И ту я решил попробовать сделать что-то подобное себе на базе HiAsm. Сначала был реализован простенький информер в области Taskbar-а с возможностью автоматической очистки кэша, дальше мне этого показалось как-то куцо и мало. И следующем было прицепить основную часть такого отличного гаджета, как CPU Usage (привет Win7), который показывает нагрузку на логические процессоры системы барами и графиком. Вот что из этого получилось (увы, гарантированно работает на Win10x64 21H1, на Win7 возможны проблемы из-за отсутствия в некоторых версиях такого хитрого WMI класса, как Win32_PerfRawData_PerfOS_Memory, которого почему-то даже нет в базе знания Microsoft ????, какой-то прямо суслик от Мелкомягких).
Экран справки:

Экран настроек и, собственно, сам информер:

Сразу предупреждаю -- работает только на горизонтальных Taskbar-ах. В архиве есть *.exe, можете попробовать. Также есть возможность прописать запуск CleaningCache в планировщике задач при помощи AddCleaningCacheInTaskschd.bat, но надо подкорректировать самому ключ ‹Arguments›/a-c0 /p-4‹/Arguments› в файле StartCleaningCache.xml для своих логических процессоров. Параметр запуска /a-c0 указывает на то, что программа будет работать на двух старших логических процессорах 8-ми поточного CPU (с0 это 11000000, отсчет идет справа налево), а параметр /p-4 указывает на то, что приоритет программы будет ниже среднего. Для запуска через планировщик задач весь архив (кроме схемы) должен быть помещен в папку c:\Program Files (x86)\CleaningCache\
Естественно, я приложил схему, но она довольно навороченная, может кому пригодится.
P.S. Вы это, не стесняйтесь, пишите результат.

Редактировалось 11 раз(а), последний 2021-12-11 12:39:45
карма: 22

0
файлы: 1CleaningCache_001.zip [153.8KB] [441]
Ответов: 8926
Рейтинг: 823
#2: 2021-12-11 11:19:01 ЛС | профиль | цитата
nesco, подозревал, что этот Cache существует, но никогда не сталкивался с его переполнением.
Разве что в Excel от 2019 г. при работе с макросами с графикой начинает приостанавливаться, причём существенно, чего ранее не было. А может и не от Cache, попробую, сравню
карма: 19

0
Разработчик
Ответов: 26148
Рейтинг: 2126
#3: 2021-12-11 12:35:12 ЛС | профиль | цитата
Леонид писал(а):
nesco, подозревал, что этот Cache существует, но никогда не сталкивался с его переполнением.
Разве что в Excel от 2019 г. при работе с макросами с графикой начинает приостанавливаться, причём существенно, чего ранее не было. А может и не от Cache, попробую, сравню

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

Редактировалось 2 раз(а), последний 2021-12-11 12:49:24
карма: 22

0
Ответов: 315
Рейтинг: 26
#4: 2021-12-11 13:16:41 ЛС | профиль | цитата
nesco писал(а):
не стесняйтесь, пишите результат

Комп фризит после очистки, отклик у приложений на запуск увеличился.
Диспетчер приложений перестал показывать данные, всё застыло.
карма: 2
0
Разработчик
Ответов: 26148
Рейтинг: 2126
#5: 2021-12-11 14:16:52 ЛС | профиль | цитата
envoy_sky писал(а):
Комп фризит после очистки, отклик у приложений на запуск увеличился.
Диспетчер приложений перестал показывать данные, всё застыло.

Дисковая подсистема на чем, на SSD или HDD? Про Диспетчер вообще не понял, он что, вообще перестал работать и какую очистку проводил, полную или только StandbyList? Вообще-то отклик у приложений на запуск и может увеличится, тк все эти приложения висят в памяти, но вот когда запускаешь игру, и тебе не хватает памяти для ее запуска и работы, тут уже и подумаешь -- нужны ли мне в данный момент приложения, висящие в памяти. К тому же, в настройках можно отключить автоматическую полную очистку, да она и не нужна, если ты не используешь ресурсоемких приложений. Странно у вас у всех работаю системы (не только на этом форуме, кстати). У меня старый комп, проц 2013 года выпуска (Xeon-1270V2, 16GB DDR3-1600), SSD (системный - 860EVO) даже не на SATA3, а на SATA2, я вообще не замечаю никаких лагов по запуску приложений.
Дело в том, что я ничего сам не выдумывал, и очисткой своего кэша занимается сама система, реагируя на применение нативной команды NtSetSystemInformation с определенными параметрами. И если система что-то не так у себя почистила, значит что-то в этой системе не так. Неплохо бы провести диагностику целостности системных файлов вот по этой методике:
Нажмите Win+x, Командная строка (Администратор), введите команду DISM /online /cleanup-image /Restorehealth нажмите Enter и дождитесь выполнения команды.
После этого введите и выполните следующую команду - SFC /Scannow


Редактировалось 4 раз(а), последний 2021-12-11 14:43:43
карма: 22

0
Ответов: 315
Рейтинг: 26
#6: 2021-12-11 14:33:45 ЛС | профиль | цитата
В диспетчере всё застыло, параметры не двигаются графики на месте циферки не бегают.Это ноутбук. Возможно что у меня отключён файл подкачки и у величин кеш системы до 4Гб. Диск hdd 750gb и 1000gb оперативки 8gb две планки по 4gb.
карма: 2
0
Разработчик
Ответов: 26148
Рейтинг: 2126
#7: 2021-12-11 14:39:51 ЛС | профиль | цитата
envoy_sky писал(а):
В диспетчере всё застыло, параметры не двигаются графики на месте циферки не бегают.Это ноутбук. Возможно что у меня отключён файл подкачки и у величин кеш системы до 4Гб. Диск hdd 750gb и 1000gb оперативки 8gb две планки по 4gb.

Ну, с таким железом лучше полную очистку не проводить. Дело в том, что при полной очистке происходит сброс ненужных модулей как раз в файл подкачки, если они понадобятся, то система их оттуда вытащит. А тут еще и HDD, да и файл подкачки в придачу вырублен, не мудрено, что система могла и глюк поймать, он не поняла, куда ей ненужные модули скидывать, вот и заглохла. Максимум, что можно применить, так это очистку StandbyList-а (голубой индикатор). Сам информер-то хоть работает?

Редактировалось 2 раз(а), последний 2021-12-11 14:45:22
карма: 22

0
Ответов: 315
Рейтинг: 26
#8: 2021-12-11 14:46:44 ЛС | профиль | цитата
Информер от программы работает. В принципе идея не плохая. Можно ли сделать время через которое происходит очистка? Прочитал сейчас на одном сайте что нужно подбирать время очистки.

Редактировалось 2 раз(а), последний 2021-12-11 14:48:51
карма: 2
0
Разработчик
Ответов: 26148
Рейтинг: 2126
#9: 2021-12-11 14:52:09 ЛС | профиль | цитата
envoy_sky писал(а):
Всё работает. В принципе идея не плохая. Можно ли сделать время через которое происходит очистка?

Если нужна принудительная, а не автоматическая очистка, то используй планировщик и параметры командной строки, примерно так -- Программа или сценарий -> "c:\Program Files (x86)\CleaningCache\CleaningCache.exe", Аргумент -> /s и в настройках триггера поставь Повторять каждые -> XX мин (сек), естественно, создав перед этим простое задание. Тогда каждые XX мин (сек) будет производится очистка StandbyList-a, это будет заметно по голубому индикатору информера.

--- Добавлено в 2021-12-11 15:30:02

envoy_sky писал(а):
Прочитал сейчас на одном сайте что нужно подбирать время очистки.

Почему я от это и отказался (хотя и предусмотрел параметры внешнего запуска) в сторону автоматической очистки при достижении заполняемости определенного процента свободной памяти, можно поставить 10%, а можно и все 100%. Сколько надо, столько и ставь, у меня вот 60% стоит. К тому же, можно ограничить повторы по времени, что бы было не так сразу, а вдруг система сама почистит (в чем я очень сильно сомневаюсь)

P.S. Можно использовать CleaningCache для полной очистки памяти перед запуском ресурсоемкой игры, написав на *.vbs скрипт с запуском полной очистки (кому позволяет железо и не выключен файл подкачки) и параллельным (или последовательным) запуском, к примеру, игры, а потом создать ярлык на запуск этого *.vbs файла. Вот примерно как я запускаю у себя POE через файл Launch_POE.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.CurrentDirectory = "c:\Program Files (x86)\"
WshShell.Run """c:\Program Files (x86)\CleaningCache\CleaningCache.exe"" /f",1, false
WshShell.CurrentDirectory = "m:\Games\Path of Exile\"
WshShell.Run "cmd /c Start /abovenormal PathOfExile.exe ""-gc 2"" -processheap", 0, false
Set WshShell = Nothing
Происходит параллельная полная очистка кэша и запуск игры.

Редактировалось 6 раз(а), последний 2021-12-11 15:42:31
карма: 22

0
Ответов: 875
Рейтинг: 101
#10: 2021-12-11 16:24:33 ЛС | профиль | цитата
Помню во времена xp и 8.1 с 8 гигабайтами памяти таких занимался, сегодня имея 16+ гб, это я бы сказал даже вредит, лишний раз подгружать всё с SSD или даже с HDD что точно общий отклик системы снизит.

Протестировал. Есть проблема видно на скрине, перекрывает тулбар (у меня стоит StartAllBack) а также посоветую не использовать Жирный шрифт и по какой то причине тень от формы не правильно светит.
5r02s0ZqWZ.png

оффтоп писал(а):
Играете в PathOfExile ?

карма: 1

0
Ответов: 315
Рейтинг: 26
#11: 2021-12-11 17:04:37 ЛС | профиль | цитата
Ну на винде 11 я бы сейчас не тестировал. Её бы саму допилить а уж потом и тестировать на ней. Сама тема интересная и моё личное мнение ей быть.
карма: 2
0
Разработчик
Ответов: 26148
Рейтинг: 2126
#12: 2021-12-11 17:26:12 ЛС | профиль | цитата
flud писал(а):
Помню во времена xp и 8.1 с 8 гигабайтами памяти таких занимался, сегодня имея 16+ гб, это я бы сказал даже вредит, лишний раз подгружать всё с SSD или даже с HDD что точно общий отклик системы снизит.

Системный HDD в 21 году, да вы издеваетесь. И подгрузка работает только при полной очистке, при очистке StandbyList-a она не используется.
flud писал(а):
Протестировал. Есть проблема видно на скрине, перекрывает тулбар (у меня стоит StartAllBack) а также посоветую не использовать Жирный шрифт и по какой то причине тень от формы не правильно светит.

Программа рассчитана на использование стандартного горизонтального тулбара с высотой 40 pix в win10, на Win11 я пока не тестировал. Измерь размер своего тулбара, я хоть буду знать его высоту. Шрифт я сделаю обычным, а вот с тенью такие приколы бывают -- она то нормальная, то такая как у тебя, хотя используется обычная дочерняя форма без всяких наворотов. Возможно, я укорочу немного высоту, расположив по-другому индикаторы.

--- Добавлено в 2021-12-11 17:40:56

flud писал(а):
Играете в PathOfExile?

Имею неосторожность, но не люблю лиги, играю Гладом-циклонером на стандарте с Ритуала, так, потихоньку наращиваю уровень до 100 и торгую помаленьку.

Редактировалось 2 раз(а), последний 2021-12-11 17:41:21
карма: 22

0
Ответов: 875
Рейтинг: 101
#13: 2021-12-11 17:51:17 ЛС | профиль | цитата
nesco писал(а):
Системный HDD в 21 году, да вы издеваетесь.
временные трудности, небольшие махинации, SSD стоит в ноуте который уходить на продажу, так что вынужден с 11 виндой на HDD сидеть

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

11-ая винда то еще приключение

nesco писал(а):
Имею неосторожность

а я забросил, есть много всего на стандарте, может как нить зайду

Редактировалось 1 раз(а), последний 2021-12-11 18:02:16
карма: 1

0
Разработчик
Ответов: 26148
Рейтинг: 2126
#14: 2021-12-11 18:18:19 ЛС | профиль | цитата
flud писал(а):
так что вынужден с 11 виндой на HDD сидет

Бедняга, как я тебе не завидую
flud писал(а):
По поводу моего особенного таскбара\тулбара, предлагаю на форму сделать небольшой контрол за который можно подвигать форму по тулбару\таскбару, тем самым установить его с нужным для каждого смещением от стандарта

Я специально сделал привязку к тулбару, тк просто двигающийся контрол расположить поверх тулбара можно только используя поплавок, после чего, это контрол начинает вести себя сам по себе и не всегда поверх всех окон, бывает кто-то перехватит этот режим, и контрол улетает за тулбар. А размер своего тулбара все-таки померяй.
flud писал(а):
есть много всего на стандарте, может как нить зайду

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

Редактировалось 2 раз(а), последний 2021-12-11 18:22:42
карма: 22

0
Ответов: 875
Рейтинг: 101
#15: 2021-12-11 20:09:55 ЛС | профиль | цитата
nesco писал(а):
А размер своего тулбара все-таки померяй.


можешь с этим сильно не заморачиваться, мало кто такой ерундой занимается, а на 11 винде так это вообще не сделать без костылей
48nJfv7wy7.png
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)