Отключите все лишнее на целевой странице если она одна, это реально сделать - например скрипты всяких фейсбуков, сторонней аналитики и так далее. Обычно сервесы используют много сторонних скриптов, которые не влияют на работу сайта, но сильно нагружают проц.
Смотрите как идет распределение нагрузки - возможно оно не сплашное, а пиками - тогда можно попробовать запускать потоки более равномерно. Чтоб избегать этих пиков.
Чаще всего можно отрисовку снизить вплоть до 10 (ну 20) .... На загрузку проца, это как раз сильно влияет.
Если сервер свой и без видюхи, то стоит поставить в него видюху.
50 в нынешних условиях для баса с браузером, достаточно много. Можно попробовать разбить на несколько копий баса по 25 например.
Можно использовать рам диск для работы с профилями - но это уже продвинутый уровень.
Зависание bas при создании овер много строк без таймаута
-
тестируется где ? в дебагере или в запуске.
куда и как строки создаются ? может стоит юзать ресурсы , а не списки ? и т.д. Тут пример нужен, а не догадки. -
@out в цикле, один поток успшных и ошибочных = 1, сгенерировать случайную строку и запись в файл, цикл от 1 до 300 000.
ресурс ненужен тут нужно именно в файл строк накидать и все.
в запуске, в записи все нормально работает так как время на отрисовку уходит. а в запуске окно баса на мертво весит до тех пор пока 300 000 строк в файл не накидает.
Это особенность баса, есть софты которые работают с строками и т.д кодеры делают как-то то изолируют форму от выполнения то есть во время выполнения форма софта не зависает. а тут бас замирает пока железка не отработает.Да банально можно воспроизвести вот так: одно действие вывод в лог и запустить выполнение 100 раз, бас зависает и далее вылетает. Типо эффект узкого горлышка.
-
такая проблема, когда интерфейс виснет по время работы софта, только у однопоточных приложений, БАС под это описание не подходит.
Думаю проблема как-раз таки в том, что запись идет сразу в файл, каждую строку. Т.е. нужно обратится к файлу 300к раз. А если бы использовался ресурс, то к файлу было бы всего несколько обращений (все остальное время, данные были бы в оперативке) -
Тоже так же зависает, вот пример с ресурсом (ресурс создаеться в оперативке) пример в цикле генерит лям строк после чего закидывает ресурсы в список и список сохраняется в файл
0_1511929295359_srtroka.xmlминус этого способа что оперативку начинает отжирать когда строки в ресурсе копятся и симптомы остаються те же.
в ресурсе интервал между использованием что 1 что 10000 разницы нет.
перед записью поставил спать 1000 в это время бас отвисает что указывает на то что зависание формы происходит во время генерации строки и записи ее в ресурс.
Так что парни ваши предположения не верны. -
@Alexx ок, тогда юзай это решение 0_1511958115024_1511929300297-srtroka.xml
1кк строк генерится 4сек, вместо 50сек. Да, интерфейс тоже при этом "подвиснет", но всего лишь на 4сек.ps: 1кк строк в процессе сожрет около 300мб RAM, но если оперативки жалко, можно писать каждую строку сразу в файл или к примеру каждые 10к.
-
@out said in Зависание bas при создании овер много строк без таймаута:
@Alexx ок, тогда юзай это решение 0_1511958115024_1511929300297-srtroka.xml
1кк строк генерится 4сек, вместо 50сек. Да, интерфейс тоже при этом "подвиснет", но всего лишь на 4сек.ps: 1кк строк в процессе сожрет около 300мб RAM, но если оперативки жалко, можно писать каждую строку сразу в файл или к примеру каждые 10к.
да решение шустрое, благодарю за код
-
еще советую, после записи строк в файл, очистить список, чтобы освободить память.
-
@out, а почему у меня такой огромный интерфейс в твоем проекте?
http://prntscr.com/hgtam1Это как-то настраивается?
-
да, масштаб можно менять http://ipic.su/img/img7/fs/kiss_40kb.1511964717.jpg
это для HIDPI экранов. -
@out, круто, спасибо. Стало удобнее!