Костыльный вариант не подскажете? Ну кроме переустанавливать всю папку.Очистка кеша сломана для профиль-папок в 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' путь до вашего профиля который вы будете запускать
Я писал об этом здесьА не больше смысла в конце перед завершением работы шаблона чистить (ну или и перед запуском, и в конце)? Чтобы не хранить все набежавшее за сессию на диске? Смысл-то именно в хранении, в общем, что в процессе набежит, оно только в процессе и будет место занимать.
Я бы не советовал так делать.
Ты предлагаешь чистить профиль когда он загружен уже инстансом, т.е. работать по живому профилю, это может вызвать проблемы с профилем при следующей загрузке.
Лучше как у меня, когда профиль не загружен, ты его чистишь а потом загружаешь.
Ну, я имел ввиду все-таки не в процессе, а в конце работы, иначе немного теряется смысл, ибо придется все равно хранить все набежавшее за сессию.Я писал об этом здесь
Есть ли новости по данному вопросу? Критическому багу 3.5 года, как же так, что нет официального решения вопроса? Как вообще работать с профиль-папками, если размер профилей будет расти по экспоненте.Пока ещё в процессе разработки.
Поддержу вопросЕсть ли новости по данному вопросу? Критическому багу 3.5 года, как же так, что нет официального решения вопроса? Как вообще работать с профиль-папками, если размер профилей будет расти по экспоненте.
Есть ли новости по данному вопросу? Критическому багу 3.5 года, как же так, что нет официального решения вопроса? Как вообще работать с профиль-папками, если размер профилей будет расти по экспоненте.
Есть встроенный механизм ограничения размера профилей, можно прописать вПоддержу вопрос
C:\Users\<Username>\AppData\Roaming\ZennoLab\ZennoPoster\7\Settings\globalsettings.settings.json
(там должно быть такое, нужно только добавить StorageQuotaSettings:PoolSizeBytes/n
, где n - размер в байтах):{
"clnMainGroup": "ZennoPoster",
"clnSubGroup": "Chrome",
"clnName": "EnableFeatures",
"clnType": "System.String",
"clnValue": "RunVideoCaptureServiceInBrowserProcess,StorageQuotaSettings:PoolSizeBytes/524288000"
},
StorageQuotaSettings:PoolSizeBytes/524288000
- это будет приблизительным ограничением пула/профиля, в байтах, что соответствует 500 Мб. Соответственно, можно настроить по желанию.--disk-cache-size=524288000 --media-cache-size=524288000