Ошибка достала...



  • @Viktor После завершения потока все данные переменных очищаются. Не обязательно записывать в переменную 0, что очистить память. Можно её просто удалить переменную TEST в выполнить код :

    delete VAR_TEST;
    

    Только мне это не сильно помогало.



  • @Fox почему не помогало?



  • @Viktor Прирост производительности оказался незначительным. Проект заиграл новыми красками, когда перевёл его на запросы.



  • @Fox said in Ошибка достала...:

    @Viktor После завершения потока все данные переменных очищаются. Не обязательно записывать в переменную 0, что очистить память. Можно её просто удалить переменную TEST в выполнить код :

    delete VAR_TEST;
    

    Только мне это не сильно помогало.

    я зануляю когда поток работает не завершаясь, выгружаю под него оперативку, а далее поток проделав операции сново берет себе данные, засчет этого оперативка освобождается для другого потока и так по цепочке



  • @Viktor да просто 0 ставим туда, ну а если тебе освобождать не в ходе выполнения, то автоматом поток разгружает озу по завершению, как сказал Лис.



  • @Zenodrot Всё зависит от объёма данных, да и вообще, логики скрипта. В том проекте у меня всё делалось через браузер и в один поток :D. Я только начинал осваивать BAS.
    Обнулять переменную есть смысл если объём обрабатываемых данных велик. Хотя если ты данные берёшь из текстового документа, можно его читать по частям и обработать его целиком в цикле, сработает дольше, но оперативка будет тратится меньше.



  • @Viktor said in Ошибка достала...:

    @Fox почему не помогало?

    учитываем браузер, он грузит скрипты и т.д а если юзаем http клиент то там только запросы, ответы без скриптов, картинок и т.д без бразера в общем шустро все летает. А если без его эмуляции никак то работая с ним в потоках оптимизируй на минимум инфы в переменных, храни масивы инфы на диске периодически подгружая выгружая.



  • @Zenodrot это частично сделано



  • @Fox said in Ошибка достала...:

    @Zenodrot Всё зависит от объёма данных, да и вообще, логики скрипта. В том проекте у меня всё делалось через браузер и в один поток :D. Я только начинал осваивать BAS.
    Обнулять переменную есть смысл если объём обрабатываемых данных велик. Хотя если ты данные берёшь из текстового документа, можно его читать по частям и обработать его целиком в цикле, сработает дольше, но оперативка будет тратится меньше.

    я про это и говорю, если нужно обработать лям строк, не в оперативе же с ними работаем а берем с ХД по строке и в путь

    например первый поток берет 1000 строк списком, делает с ним манипуляции переходит к другому действию где этот список уже ненужен, и чтобы он в переменке не торчал до того как поток закончит работу мы переменку нулим или удаляем. В этоге в процесе выполнения поток не носит с собой эти 1000 строк.



  • @Fox кста, сравнил на чистых запросах зенку и BAS делал грабер по урл, логика проекта одинакова, BAS выполняется быстрее, грабер нагружает минимум ресурсов от зенки, проц выполняет быстрее код.



  • Наблюдение: ошибка вылетает только после перезагрузки всей системы. После нескольких повторных запусков начинает долго работать.


  • administrators

    @Viktor У меня есть подозрения на малое количество памяти в системе или на маленький файл подкачки. 3гб, это очень мало. Вот отладочная версия https://bablosoft.com/distr/BrowserAutomationStudioDevelopment/debug.18.7.0.zip
    Запустите ее, дождитесь вылета и пришлите мне файл crashdump.dmp



  • @support щас не мучит ошибка, если появится хоть раз, тут же воспользуюсь вашим советом!


Log in to reply
 

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