@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Через выполнить код прочитать файл в переменную
-
Как через выполнить код считать файл в переменную?
-
@trezubec45 said in Через выполнить код прочитать файл в переменную:
Как через выполнить код считать файл в переменную?
Для чего оно вам? Может не стоит лезть под капот?
-
@Fox Под капотом я люблю лазить. Для инсты делаю бота, будут файлы задания (настроечные setting.ini) из которых бас будет считывать в переменные текст. данные. Ну и через выполнить код как оказалось мне удобнее анализировать алгоритм, т.к. на экране видно с несколько десятков строк кода, вместо 5 кубиков.
-
@trezubec45 said in Через выполнить код прочитать файл в переменную:
@Fox Под капотом я люблю лазить. Для инсты делаю бота, будут файлы задания (настроечные setting.ini) из которых бас будет считывать в переменные текст. данные. Ну и через выполнить код как оказалось мне удобнее анализировать алгоритм, т.к. на экране видно с несколько десятков строк кода, вместо 5 кубиков.
Внутри действия может быть разный код в разных версиях BAS. Внутрянку могут поменять для оптимизации или исправления багов или ещё по какой причине. И если для действия будет достаточно пересохранить (открыть действие и нажать "ок"), то код вам придётся редактировать в ручную весь.
Если вас это не пугает, создайте пустой проект, создайте в нём необходимое действие и откройте код скрипта
-
@Fox said in Через выполнить код прочитать файл в переменную:
Внутри действия может быть разный код в разных версиях BAS. Внутрянку могут поменять для оптимизации или исправления багов или ещё по какой причине. И если для действия будет достаточно пересохранить (открыть действие и нажать "ок"), то код вам придётся редактировать в ручную весь.
Это полбеды и вероятность низка, зато высокая вероятность сделать не очевидную ошибку и причем скрипт может даже работать пока его например не скомпелируешь и хорошо если он просто будет сыпать ошибками, а может просто работать "как-то странно" ))
-
Я так то сделал. Но там сложность в том, что надо в закодированном видео прописывать путь. например "C:\u005cfile.txt" Мда видимо игра не стоит свеч. Через кубики придется делать. Чем неудобны кубики, что сложно видно алгоритм. У меня влазит только 5-6 кубиков на экране. Чтобы понять что к чему, приходится скролить да не по разу. Была бы возможность уменьшать кубики, или делать их по типу одной строкой, наверное было бы удобнее ориентироваться.
-
@trezubec45 said in Через выполнить код прочитать файл в переменную:
Я так то сделал. Но там сложность в том, что надо в закодированном видео прописывать путь. например "C:\u005cfile.txt" Мда видимо игра не стоит свеч. Через кубики придется делать. Чем неудобны кубики, что сложно видно алгоритм. У меня влазит только 5-6 кубиков на экране. Чтобы понять что к чему, приходится скролить да не по разу. Была бы возможность уменьшать кубики, или делать их по типу одной строкой, наверное было бы удобнее ориентироваться.
Есть функции БАС, или на худой конец блок if (1) { ... }
-
@trezubec45 ЯП, кубики. какая разница. логику если всю или нужную часть можно просто держать в уме.
и её реализовывать как раз на том что есть.кстати, самый подходящий вам вариант это подсказывает @UserTrue
if (1) { ... }- в бас кубик условия при нажатии сворачивает визуально что находящиеся внутри кубики. -
@trezubec45 причём тут экран и мозги. у вас вместо мозгов экран?
-
@tet-vivi А при чем здесь мозги? Вы вообще в курсе вопроса? Ваш ответ о чем? Пользоваться кубиками так как нет разницы? Для кого? Для вас? Да мне глубоко на это фиолетово. Я спрашивал и ответ получил от Fox. Ваш ответ для меня не несет никакой пользы. Абсолютно.
-
@trezubec45 поставь этот хак и тащи все что в кубиках скрыто к себе в код
https://community.bablosoft.com/topic/10383/плюшки-для-действия-выполнить-код
-
@Bigma Спасибо за совет, я его несколько лет юзаю. Для меня очень полезный хак. Благодаря ему, я немного стал изучать код изнутри.