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

Поддержка
  • @Zenodrot Спасибо за инфу!
    Значит, просто устанавливаешь переменную в 0, и все, память почистилась? А по завершению потока это афтаматом происходит, или нет?

  • @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 выполняется быстрее, грабер нагружает минимум ресурсов от зенки, проц выполняет быстрее код.

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

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

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