@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
сделать чтоб весь кеш загружался в одну папку в одном месте
-
короче идея была интересная с центральной папкой для кеша, но она не работает
папки cache и code cache не растут больше 380-450мб ни в какую с 100 профилей.отдельно уже один профиль тестово сделал чтоб не в эти папки собирал кеш, а по стандартному пути - у него одного уже кеша больше чем со всех этих в центральной папке. жаль, только убил несколько дней на тесты а там какое-то ограничение или что-то подобное, без объяснений. грусть печаль, откатываю все обратно.
написал тут вдруг кто-то еще захочет поэксперементировать таким образом - сохраните свое время -
Благодаря это топику я сделал так:
У меня есть скрипт, который запускается в n-е кол-во потоков, при старте приложения создается во временной папке директория с папками, где название папки это номер потока в BAS.
Пример:
_/tmp/MyCoolScript_SomeRandomStringNumberOfThread.

В каждом потоке в BAS перед стартом в настройках браузера задается путь к своей папке по номеру потока.
Main / Browser / Browser Settings:
--disk-cache-size=104857600 --disk-cache-dir=[[CACHE_DIR]] --disable-gpu-program-cache --disable-gpu-shader-disk-cache --disable-features=GpuProcessHighPriorityWin,GpuUseDisplayThreadPriority --lang=enТаким образом получаем, что при рестарте потока каждый поток работает со свой папкой, при первом старте кэш пустой, при последующих - остался от предыдущих потоков.
-
@sergerdn Я долго ждал пока кто-нибудь посмотрит ключа запуска и заметит --disk-cache-dir , но было прикольно наблюдать за выдумыванием различных костылей с символными ссылками и тп )
От себя добавлю, что для кэша лучше использовать папку в корне диска, у меня так c:/cache/project_name . Потому что если в пути будут пробелы то кэш не будет сохранятся в общую папку, возможно стоит их как-то экранировать, но я не стал заморачиваться.
-
@UserTrue said in сделать чтоб весь кеш загружался в одну папку в одном месте:
@sergerdn Я долго ждал пока кто-нибудь посмотрит ключа запуска и заметит --disk-cache-dir , но было прикольно наблюдать за выдумыванием различных костылей с символными ссылками и тп )
Троль😄 Я просто читал и не понимал, зачем народ городит костыли.
https://peter.sh/experiments/chromium-command-line-switches/#disk-cache-dir
@UserTrue said in сделать чтоб весь кеш загружался в одну папку в одном месте:
От себя добавлю, что для кэша лучше использовать папку в корне диска, у меня так c:/cache/project_name . Потому что если в пути будут пробелы то кэш не будет сохранятся в общую папку, возможно стоит их как-то экранировать, но я не стал заморачиваться.
Я сделал именно случайную папку, так как скрипт может запускаться в несколько экземпляров и чтобы каждый экземпляр использовал свой папку.
А временную папку выбрал, потому что она очищается при рестарте компьютера.
Я, если кому-то что-то делаю, настраиваю сервер сам. А значит сервер у меня en и логин Administrator, а значит пробелов нет.
-
@UserTrue said in сделать чтоб весь кеш загружался в одну папку в одном месте:
@sergerdn Кстати про сервер, там еще нужны ключи запуска , если нет видеокарты (если разработчик это не пофиксил это из коробки)
--disable-dawn-features=adapter_blocklist --use-vulkan=swiftshaderЯ даже не знаю что за первый ключ такой, пошел смотреть на https://chromium.googlesource.com/chromium/src/+/master/gpu/config/gpu_switches.cc#67
Звучит ключ еще как-то странновато - "отключить фичи дауна" 😅
-
@UserTrue said in сделать чтоб весь кеш загружался в одну папку в одном месте:
@sergerdn Это чтобы WebGPU мог использовать процессор вместо видеокарты, по умолчание не может и это можно спалить и некоторые это палят. Актуально если используются виндовые отпечатки
Да, я это уже прочитал, спасибо, что поделился.
-
Наличие кэша можно тоже спалить. Делаем чек
IS_COOKIE_EXISTS == false и IS_CACHE_EXIST == true set red_flag_user = 1У тебя есть кэш есть, а куков нет xD. Откуда ты взял кэш без куков?
Можно возразить, а мол в браузере есть фича удалить только куки и оставить кэш, но кто так делает?
В таком случае можно сверху чекнуть есть ли кэш у интернет соединения (у резолвера в частности днс, например отрезолвить несуществующий домен и понять уникальный ли посетитель) и тут вдруг выясняется что посетитель уникальный IS_CACHEDNS_EXIST == false, куков у него нет IS_COOKIE_EXISTS == false, а вот кэш браузера откуда-то взялся xD Ай, да мамкин крутильщик 😊
-
@FastSpace Это все теория, нужно с каждым конкретным сайтом смотреть что можно, а что нельзя. Какой смысл применять самые строгие рамки ко всем сайтам, да есть сайты у которых паранойя зашкаливает, но большинство так не делает. Большая часть больших сайтов делает упор на перфект канвас и проверку ip по своим базам, ещё скорость ввода букв в поля ввода часто смотрят.
Кроме того у больших сайтов огромная инфраструктура, всякая статика типо скрипты могут грузиться с одних серверов, картинки с других, сменилось гео опять с других. Плюс у них тоже стоят всякие кжширующие сервера которые работают отдельно от серверов приложения. Короче муть такая что пытаться разобраться откуда у юзер кэш задача та ещё и не факт что выполнимпя для них и что того стоит
-
This post is deleted!
-
@UserTrue said in сделать чтоб весь кеш загружался в одну папку в одном месте:
Кроме того у больших сайтов огромная инфраструктура, всякая статика типо скрипты могут грузиться с одних серверов, картинки с других, сменилось гео опять с других. Плюс у них тоже стоят всякие кжширующие сервера которые работают отдельно от серверов приложения. Короче муть такая что пытаться разобраться откуда у юзер кэш задача та ещё и не факт что выполнимпя для них и что того стоит
Причем тут сервера разные.
Я отрезовлю тебе в браузере plkf1mif1lfq199jfggkcllfqrgmzj135mvf1.com несуществующий домен и пойму ответил ты из кэша или нет, а также чекну наличие куков моего домена. Всё задача простая. -
@FastSpace ок тем временем я это уже давно успешно использую на многих сайтах и регерах. А ты все про какие-то теоретические возможности
-
@UserTrue said in сделать чтоб весь кеш загружался в одну папку в одном месте:
@FastSpace ок тем временем я это уже давно успешно использую на многих сайтах и регерах. А ты все про какие-то теоретические возможности
Используй ) Моё какое-то дело, только лишь сказал что почти всё нестандартное и кастомное что ты делаешь с браузером можно спалить.
Вон сайт с отелями чекает сколько у тебя шлюзов в системе xD ЖЕСТЬ. -
@FastSpace said in сделать чтоб весь кеш загружался в одну папку в одном месте:
Используй ) Моё какое-то дело, только лишь сказал что почти всё нестандартное и кастюмное что ты делаешь с браузером можно спалить.
Только палят обычно стандартное как раз, стандартными решениями
-
@UserTrue said in сделать чтоб весь кеш загружался в одну папку в одном месте:
@FastSpace said in сделать чтоб весь кеш загружался в одну папку в одном месте:
Используй ) Моё какое-то дело, только лишь сказал что почти всё нестандартное и кастюмное что ты делаешь с браузером можно спалить.
Только палят обычно стандартное как раз, стандартными решениями
Ладно, забей я не об этом.
Если сайт сильно захочет - он спалит прокси из шопов и бас тоже.
-
@sergerdn said in сделать чтоб весь кеш загружался в одну папку в одном месте:
Таким образом получаем, что при рестарте потока каждый поток работает со свой папкой, при первом старте кэш пустой, при последующих - остался от предыдущих потоков.
ага, такую опцию уже себе поставил одну из) удобно когда по тому же сайту ходить надо тыщщи раз)
ну и очистку кеша или всего профиля - то в настройке выше при необходимости выбрать)и по поводу этих ключей, я так понял что они по умолчанию именно так и стоят в настройках браузера
--disable-gpu-program-cache
--disable-gpu-shader-disk-cache
--disable-features=GpuProcessHighPriorityWin,GpuUseDisplayThreadPriority -
@basuser123 Вы у меня Улыбку на лице создаёте, помнится Кузкуз может так, но вы всех превзошли.
Что за вот интересно Кодер, за которго решают Логику :))) -
@UserTrue said in сделать чтоб весь кеш загружался в одну папку в одном месте:
Я долго ждал пока кто-нибудь посмотрит ключа запуска и заметит --disk-cache-dir , но было прикольно наблюдать за выдумыванием различных костылей с символными ссылками и тп )
хм
.хотя до этого несколько дней назад я у него именно это и спрашивал
вот и верь после этого ai) чо там от него наш разраб хочет такого волшебного я хз))
хотя там очень многое зависит от умения формулировать вопрос так чтоб он ответил. если правильно спрашивать он тебе расскажет и как порты сканировать для хака, и как из листьев коки кокаин гнать) но это сцк целое исскуство, иногда хочется просто быстро задать вопрос и получить нормальный ответ)@Alex84
так а чо кодер, ему надо тз дать, а как ты его дашь если сам не до конца понимаешь всех возможностей и невозможностей)
и даже после этого еще надо проходить с наждачкой чото улучшать не один раз)
вот, сижу изобретаю велосипед, хули... -
This post is deleted!