Костыльный вариант не подскажете? Ну кроме переустанавливать всю папку.Очистка кеша сломана для профиль-папок в ZP7.
Вручную удалять файлы содержащие кеш.Костыльный вариант не подскажете? Ну кроме переустанавливать всю папку.
Там туча файлов и папок. Которые из них для Chromium?Вручную удалять файлы содержащие кеш
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
string bad_dir = $@"{profilePatch}\Default\Service Worker\CacheStorage";
string[] files = Directory.GetFiles(bad_dir);
string[] subDirectories = Directory.GetDirectories(bad_dir);
foreach(string file in files)
{
File.Delete(file);
}
foreach(string directory in subDirectories)
{
Directory.Delete(directory, true);
}
}
--disk-cache-size=52428800 --media-cache-size=52428800
Можно чуть улучшить и попробовать использовать переменную окружения:Вот мое решение, которое позволило мне сократить размер профиль папок с 600mb+ до 700kb+
Почти в 900 раз.
Первое, это удаление папки '...\Default\Service Worker\CacheStorage'
Удаление папки '...\Default\Service Worker\CacheStorage' приведет к очистке кэшированных данных веб-сайтов, включая возможно кэшированные данные сервис-воркеров.
Второе, запуск chrome с флагами:C#:bool REDUCE_PROFILE_SIZE = true; if(REDUCE_PROFILE_SIZE) { string bad_dir = $@"{profilePatch}\Default\Service Worker\CacheStorage"; string[] files = Directory.GetFiles(bad_dir); string[] subDirectories = Directory.GetDirectories(bad_dir); foreach(string file in files) { File.Delete(file); } foreach(string directory in subDirectories) { Directory.Delete(directory, true); } }
--disk-cache-size=52428800 --media-cache-size=52428800
Это уменьшает размер максимального кеша.
PS. Все куки, и LocalStorage остаются на месте, авторизации не слетают.
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
var browserProfileFolder = project.BrowserProfileFolder;
if (string.IsNullOrEmpty(browserProfileFolder)) return "";
string bad_dir = Path.Combine(browserProfileFolder, $@"\Default\Service Worker\CacheStorage");
string[] files = Directory.GetFiles(bad_dir);
string[] subDirectories = Directory.GetDirectories(bad_dir);
foreach(string file in files)
{
File.Delete(file);
}
foreach(string directory in subDirectories)
{
Directory.Delete(directory, true);
}
}
а можно чуть подробнее - что куда добавить, как использовать? к слову тянет на статью в конкурс - "кейс, как сэкономил на покупке железа")Можно чуть улучшить и попробовать использовать переменную окружения:
C#:bool REDUCE_PROFILE_SIZE = true; if(REDUCE_PROFILE_SIZE) { var browserProfileFolder = project.BrowserProfileFolder; if (string.IsNullOrEmpty(browserProfileFolder)) return ""; string bad_dir = Path.Combine(browserProfileFolder, $@"\Default\Service Worker\CacheStorage"); string[] files = Directory.GetFiles(bad_dir); string[] subDirectories = Directory.GetDirectories(bad_dir); foreach(string file in files) { File.Delete(file); } foreach(string directory in subDirectories) { Directory.Delete(directory, true); } }
Так и так же все понятно.а можно чуть подробнее - что куда добавить, как использовать? к слову тянет на статью в конкурс - "кейс, как сэкономил на покупке железа")
string profilePatch = $@"путь до вашей папки с профилем"; // например D:/Profiles/Profile_1
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
string bad_dir = $@"{profilePatch}\Default\Service Worker\CacheStorage";
string[] files = Directory.GetFiles(bad_dir);
string[] subDirectories = Directory.GetDirectories(bad_dir);
foreach(string file in files)
{
File.Delete(file);
}
foreach(string directory in subDirectories)
{
Directory.Delete(directory, true);
}
}
[ваши блоки в шаблоне]
[мой код уменьшения размера папки профиля]
[запуск инстанса с профиль папкой]
[ваши блоки в шаблоне]
Я бы не советовал так делать.Можно чуть улучшить и попробовать использовать переменную окружения:
C#:bool REDUCE_PROFILE_SIZE = true; if(REDUCE_PROFILE_SIZE) { var browserProfileFolder = project.BrowserProfileFolder; if (string.IsNullOrEmpty(browserProfileFolder)) return ""; string bad_dir = Path.Combine(browserProfileFolder, $@"\Default\Service Worker\CacheStorage"); string[] files = Directory.GetFiles(bad_dir); string[] subDirectories = Directory.GetDirectories(bad_dir); foreach(string file in files) { File.Delete(file); } foreach(string directory in subDirectories) { Directory.Delete(directory, true); } }
в вашей посте - все понятно, спасибо)Так и так же все понятно.
Попробую объяснить проще.
А не больше смысла в конце перед завершением работы шаблона чистить (ну или и перед запуском, и в конце)? Чтобы не хранить все набежавшее за сессию на диске? Смысл-то именно в хранении, в общем, что в процессе набежит, оно только в процессе и будет место занимать.В своем шаблоне перед запуском инстанса вы запускаете мой код, предварительно присвоив переменной 'profilePatch' путь до вашего профиля который вы будете запускать
Я писал об этом здесьА не больше смысла в конце перед завершением работы шаблона чистить (ну или и перед запуском, и в конце)? Чтобы не хранить все набежавшее за сессию на диске? Смысл-то именно в хранении, в общем, что в процессе набежит, оно только в процессе и будет место занимать.
Я бы не советовал так делать.
Ты предлагаешь чистить профиль когда он загружен уже инстансом, т.е. работать по живому профилю, это может вызвать проблемы с профилем при следующей загрузке.
Лучше как у меня, когда профиль не загружен, ты его чистишь а потом загружаешь.
Ну, я имел ввиду все-таки не в процессе, а в конце работы, иначе немного теряется смысл, ибо придется все равно хранить все набежавшее за сессию.Я писал об этом здесь