Отключите все лишнее на целевой странице если она одна, это реально сделать - например скрипты всяких фейсбуков, сторонней аналитики и так далее. Обычно сервесы используют много сторонних скриптов, которые не влияют на работу сайта, но сильно нагружают проц.
Смотрите как идет распределение нагрузки - возможно оно не сплашное, а пиками - тогда можно попробовать запускать потоки более равномерно. Чтоб избегать этих пиков.
Чаще всего можно отрисовку снизить вплоть до 10 (ну 20) .... На загрузку проца, это как раз сильно влияет.
Если сервер свой и без видюхи, то стоит поставить в него видюху.
50 в нынешних условиях для баса с браузером, достаточно много. Можно попробовать разбить на несколько копий баса по 25 например.
Можно использовать рам диск для работы с профилями - но это уже продвинутый уровень.
Счётчик и потоки цикла
-
Есть однопоточный цикл, который берёт новость из файла и чебурашет её на переменные.
Дальше он создаёт переменную [[SCHETCHIK]] (Счётчик) со значением 1.
Дальше он запускает второй цикл в 10 потоков.
Второй цикл первым делом берёт значение счётчика и кладёт в свою переменную [[NOMER]].
После чего увеличивает [[SCHETCHIK]] на единицу и пошёл дальше отправлять новость на сайты.
Вот чего я боюсь: Что 10 потоков возмут себе единицу в свою переменную [[NOMER]], после чего каждый увеличит счётчик на единицу (итого на 10) и на следующем заходе то же самое произойдёт с числом 11...
Как избежать такой вероятности?
-
@LCFSCS said in Счётчик и потоки цикла:
Есть однопоточный цикл, который берёт новость из файла и чебурашет её на переменные.
Дальше он создаёт переменную [[SCHETCHIK]] (Счётчик) со значением 1.
Дальше он запускает второй цикл в 10 потоков.
Второй цикл первым делом берёт значение счётчика и кладёт в свою переменную [[NOMER]].
После чего увеличивает [[SCHETCHIK]] на единицу и пошёл дальше отправлять новость на сайты.
Вот чего я боюсь: Что 10 потоков возмут себе единицу в свою переменную [[NOMER]], после чего каждый увеличит счётчик на единицу (итого на 10) и на следующем заходе то же самое произойдёт с числом 11...
Как избежать такой вероятности?
Как именно цикл запускает потоки?
-
@LCFSCS said in Счётчик и потоки цикла:
@Fox
Планировал второй цикл сделать функцией и вызвать в несколько потоков.Используйте локальный ресурс или список в глобальной переменной
-
Что-то я ничего не понимаю...
Локальный ресурс - добавлять можно только строки - не получится туда число положить и менять его из каждого потока.
Список в глобальной переменной - это я вообще не понял как: создать глобальную переменную и вложить в её значение список из ресурса?
И что со списком делать? - Создавать в нём строки (1,2,3,4,5... - запятые заменяем переносами и так до значения посчитанного колличесва ячеек ексель-файла - а их будет несколько тысячь)?А с глобальными переменными не получится? Нельзя сделать как-то, чтобы значение её отдавалось единожды, пока не измениться?
Думал сделать задержку на "номер потока" секунд - но всё равно сохраняется вероятнось "схватить дубль"...
Что-то я начитался (пол дня читал - искал похожую ситуацию - но не нашёл) и пришёл к очень негативным предположениям:
Каждый поток (кроме первого) получается "чистым"? - Он "забывает" всё, что было до его "рождения" (загрузку профиля, про все мои 100500 начебурашенных переменных) - может иметь дело только с глобальными переменными и ресурсами?
Так ли это? Если так - то мне профиль нужно грузить в каждом потоке и нужные переменные переделывать в глобальные?
Можно ли пересоздавать глобальные переменные (ибо мы создаём их первым циклом) - конфликтов не будет?И опять к подходу - реализовать "счётчик для циклов" - пол часа делов и добавить как действие и как опцию для циклов с тремя "вариантами" (использовать один раз или многократно, увеличивать после использования) - годами люди парятся с циклами в многопотоке, пляшут с бубном.
Полез запускть функцию многопоточно - а она ко мне пристаёт со своими "Удачными" и "Неудачными". - Что ей указывать - ноль, один или мииилон? Кучу роликов просмотрел и нигде не объясняют что это, как работает и что с ним делать - ограничиваются тем, что "Я это потом объсню" (и не объяснил), "А я люблю ставить девять девяток (десять десяток)"...
Как это вообще работает? Я не знаю сколько будет оборотов цикла в каждом потоке. Как повлияют эти цифры на многопоточное выполнение цикла - дойдёт до установленной цифры и прекратит (не доделав до конца), или выполнит цикл (но так как цифры не достиг) и опять его запустит, или эти цифры "ни на что не влияют"?