Глобальные переменные.



  • Решил, блин, называется сэкономить ресурсы сервера.. Скрипт работал в 30 окон и каждый парсил свою страничку. Но я решил ускорить процесс отклика скрипта на события страницы. Так как через прокси данные идут медленнее, выделил я первый поток именно для мониторинга страницы, и через глобальные переменные сделал общение между потоками..
    Тут и появились странности. Стандартный цикл проверки события на экране выдавал булево в переменную, далее скрипт через if уже выполнял действия. Дак этот цикл выгружая данные без задержек в глобальную переменную вешает BAS даже на стационарном, мощном компе. При том, мониторинг ресурсов показывает использование ресурсов не превышает 30%..
    Я думал глобальные переменные можно использовать так же спокойно, как и обычные, оказалось всё не так просто.
    @support Может ли постоянная запись или чтение глобальной переменной в многопотоке вешать BAS?



  • @support Нашёл почему зависает. Но исправить пока не могу.
    Если в цикле есть условие с данными из глобальной переменной, то BAS зависает.
    Скрипт с циклами

    А вот если не использовать циклы, то скрипт не зависает
    Скрипт без циклов

    С метками тоже зависает
    Скрипт с метками

    Зависает даже в условиях не использовать глобальные переменные
    Скрипт без глобальных переменных в условиях



  • @Fox said in Глобальные переменные.:

    Если в цикле есть условие с данными из глобальной переменной, то BAS зависает.

    сделай в начале цикла while минимальную задержку, я поставил 1 миллисекунду, и скрипт нормально отрабатывает.



  • @santilo Спасибо! Ларчик то, как говорится, просто открывался :)
    С минимальной задержкой работает



  • Похоже пока рано от зенки отказываться.

    Наверно через 1-2 года BAS будет работать стабильно и будет дока по API?

    Очень привлекает возможность уже сейчас использовать BAS под WINE.

    А ZennoBox никто под WINE не пробовал?

    Целиком ZennoPoster, судя по отзыву не работает в WINE:
    https://appdb.winehq.org/objectManager.php?sClass=application&iId=17892



  • @sanyo BAS работает стабильно, что у Вас не получается?



  • Да я выше по ветке посмотрел, мол виснет без задержки.

    Или это нормально для многопотока?



  • @sanyo зависает от вечного цикла без паузы



  • причем зависает только визуально, если посмотреть файлы логов то видно что в это время скрипт работает



  • This post is deleted!

  • administrators

    @sanyo

    Да я выше по ветке посмотрел, мол виснет без задержки.

    Да, весь синхронный код выполняется в одном потоке.
    Функция лог является синхронной, поэтому такой код должен виснуть.

    0_1494133018246_WhileTrue.png

    Но у этого подхода есть одно существенное преимущество - не нужно добавлять примитивы для синхронизации для многопоточного кода(локи, мьютексы и т. д.)

    Наверно через 1-2 года BAS будет работать стабильно

    Работу над БАС я начал в середине 2013, над стабильность я работал в первое время развивая среду и параллельно выпуская софт на нем. Сейчас ядро я почти не трогаю, а новый функционал добавляю через систему модулей.


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.