@demiz99 said in Как оплатить BAS Premium?:
А кроме этого способа есть еще? Не очень хочется сверху лишние комиссии платить
Ответил в личку
@Fox said in Живая связь двух скриптов **BAS**:
@Zenodrot Поспешил :) срабатывает быстро, если применять регулярку сразу к ресурсу, только вот не работает.
Зато если взять из файла и сразу к нему применить регулярку, то всё прекрасно срабатывает.
да,да с ресурсом не катит, если не читать файл в список, а читать просто файл тогда отрабатывает нормально
так не нагружает
вывод, что при чтении файла в список и потом в этой переменки парсить список это не правельно, но если прочитать файл не как список и спарсить то все норма
пля без пузырька не разберешься )
если админ уведет это сообщение, может даст комментарий по этому поводу почему так отжирает ресурсы в первом случае. Ведь это подводный камень может быть для новичков.
p.S
Лис, МБ в твоем шабе есть подобные камешки, не думал об этом?
@artihorror said in Живая связь двух скриптов **BAS**:
@Fox нашел как нагрузку на проц уменьшить? 8х2.5 85-90% хавает в 80 потоков
8х2.5 Это в смысле восьмиядерный проц с частотой 2.5 гигагерца?
Нагрузку на проц очень хорошо снижает пропуск кадров, @support хотел как то сделать надстройку, чтобы регулировать для каждого потока пропуск кадров. Но пока её нет, я реализовал через два скрипта. Один парсит нужную информацию с пропуском кадров 1 и записывает в базу. А второй скрипт с огромным пропуском кадров 2000 (рендерит один кадр в 30 секунд) применяет полученную информацию из базы. Вообщем пока идёт тест на моей машине, завтра-послезавтра закину на сервер, тогда смогу сказать, есть польза от этого или нет :).
Думаю ещё освобождать промежуточные переменные, например получив отпечаток в переменную FINGERPRINT я его применяю, но больше, эту переменную ни как не использую. А в оперативке она висит у каждого потока.
Или после get-запроса содержание ответа получаю в переменную SAVED_CONTENT из которой получаю нужную информацию через регулярку, либо xpath. Но сама переменная тоже висит в оперативке.
Возможно конечно я не прав, и BAS как то выгружает не используемые переменные из оперативки на винт например..
@sitiros said in Живая связь двух скриптов **BAS**:
@Fox мне тоже интересно, для оптимизации можно ли чистить\удалять переменные? есть ли в этом смысл?
если большие объемы инфы в переменке фигурируют то лучше высвобождать их, сам прикинь зачем ненужный объем памяти в ходе проекта таскать с собой, в одну накинул в другую накинул вот и оперативка кончилась, один поток забил раму например в 100 мб там второй поток еще 100 мб и т.д каждый себе кусок отъел, а если высбободил у первого потока второму эта часть достанется и т.д я как понимаю потоки в BASе работают асинхронно вне очереди. Я сильно особо не шарю в многопоточности, хз.
копипаст с зиновского мана
Нужно учесть один нюанс: расход процессора можно немного превысить, т.е. если у вас он загружен на 100% увеличение потоков на 10-15% практически ничего не изменит, а главное, не ухудшит. Просто потоки будут ждать некоторое время освобождения этих ресурсов.
Оперативная память, наоборот, не должна забиваться полностью, всегда лучше оставлять 10-30%. Если она кончится, это может привести к падению.
ну это доводы, нужно точно узнавать у супарта, МБ BAS за нас все оптимизирует.
Уфф, 4 утра, а я так и не разобрался. Хотел поставить все точки над И, но не вышло. Вот АРХИВ.
В нём файл mails.txt, который надо в корень диска C:\ положить.
И три тестовых проекта, каждый из которых запускает 200 потоков, читает файл mails.txt в переменную.
Первый проект сперва читает файл в переменную, потом обнуляет, присваивая переменной значение 0.
Второй сперва читает файл в переменную, потом удаляет командой delete VAR_FILE_CONTENT;
А третий читает >> обнуляет >> читает >> удаляет.
Я раз 10 запускал скрипты и мониторил загруженность оперативки. Дак каждый раз результат был разный.. То помогает обнуление освобождая память, то наоборот немного увеличивало занимаемый объём. С удалением точно так же. То освобождалась память, то нет..
Может я не корректно провожу тест?
@Fox said in Живая связь двух скриптов **BAS**:
@artihorror said in Живая связь двух скриптов **BAS**:
@Fox 8х2.5 Это в смысле восьмиядерный проц с частотой 2.5 гигагерца?
именно такой.
по обнулению переменных имеет смысл только если ложишь в нее что нибудь весом в несколько десятков мб. Пришлось раз обрабатывать басом текстовик весом 8гб, озу забивалась моментально и только обнуление спасало. А мелочь в сотню кб, даже если все 300 потоков не особо влияет. отпечаток весит 160 кб в среднем, выгружая его освободишь 45 мб рамы в 300 потоков.
Интересно как снизить нагрузку на процессор, какие действия нагружают его. Выше писали что обращение к файловой системе сильно влияет на процессор - отчасти так, но влияние мизер. Храню куки в текстовиках , при обращении нагрузка потока на проц с 0.1% повышается до 0.2% и то на мгновение. Но при загрузке страниц может нагрузить до 7-12% с пропуском кадров в 500. Фича по отключению скриптов и css, запрет загрузки картинок и еще пара плюшек как у зенки (не помню что еще там отключается у браузера) неплохо бы так улучшило производительность

80 потоков, запускаются с интервалом в 3 сек дабы распределить нагрузку. пики в момент начала загрузки страниц 40-45 потоков. при работе на странице нагрузка падает до 40-50%, при следующей загрузке страницы процессор снова потеет.
Фича по отключению скриптов и css, запрет загрузки картинок и еще пара плюшек как у зенки (не помню что еще там отключается у браузера) неплохо бы так улучшило производительность
Дак в BAS'e это тоже есть. Экшен запретить запрос, и всё что угодно в нём запрещаешь, хочешь картинки, хочешь звуки, хочешь скрипты..

@artihorror На счёт -1 спасибо, не знал. А на счёт скриптов и css, попробуй *.css и *.js .