Где быстрее?



  • Я сделал тестовый скрипт для измерения выполнения одного задания в самом БАСе и в экшене "Выполнить код".
    В коде в 2, а то и больше раза выполняеться медление, что загрузка get запроса, что обычный сон.
    Так и должно быть или что то неправильно?
    P.S. Я думал, что через выполнить код всегда будет быстрее.

    Вот тестовый скрипт: Tester2.xml



  • при этом ничего не смутило, что второй результат всегда ноль?)
    в выполнить код ты дважды запрашиваешь VAR_DATE_NOW.
    а на кубиках ты используешь 1 запрос даты. и дважды из него получаешь миллисеки.
    добавь кубик "DATE_NOW" после кубика "спать 10 мс"
    тогда будет честный результат)

    проц загружен под завязку, делал тест во втором открытом приложении, выгода через выполнить код вышла в 100-150 мс
    [692665655] [02:08:10] Thread #1 : 862
    [551444443] [02:08:14] Thread #1 : 1086
    [692665655] [02:12:23] Thread #1 : 952
    [551444443] [02:12:27] Thread #1 : 1006



  • @oleg4ever Все переделал. Также затестил с гет/пост. Экшн быстрее. Но я все таки в поисках. Возможно есть что бытрее за экшн?



  • @fOrest94 Нет разницы как вы запускаете api bas. Запускать какое-то действие через api БАС либо через его экшен это фактически одно и тоже. В выполнить код пишут только для того, что бы организовать сложную логику либо обработать какие-то списки тк например цикл на js будет быстрей чем в БАС в силу того, что цикл БАС асинхроный, а обычный цикл js нет, но у этого есть побочный эффект можно повешать интерфейс.

    Кстати ваш тест(удалил из него лишнее) работает одинаково в пределах погрешности
    Первая цифра это выполнить код, вторая экшен.
    2020-06-23_180959.png



  • @UserTrue А как тогда увеличить скорость например get/post запросов, как в моем случае? Может через модуль нода будет быстрее?



  • @fOrest94 Не будет, БАС быстро работает. Используйте многопоток и все.

    Я как-то делал тесты. Написал простой чекер проксей на чистой ноде и такой же на БАС. И запускал их в 500 потоков, особой разницы не увидел, БАС даже был немного быстрей.



  • @UserTrue Тоесть можна просто через экшн делать парсинг, отсилать get/post запросы. И экшн Выполнить код и экшн Нода модуль не использувать. Все верно?
    P.S. Вопрос идет именно в скорости.



  • @fOrest94 said in Где быстрее?:

    @UserTrue Тоесть можна просто через экшн делать парсинг, отсилать get/post запросы. И экшн Выполнить код и экшн Нода модуль не использувать. Все верно?
    P.S. Вопрос идет именно в скорости.

    Ну конечно, парсите в многопотоке и все.



  • @UserTrue Просто у меня есть конкурент, в которого прога на чистой ноде. Я смогу ему не проиграть по скорости?



  • @fOrest94 said in Где быстрее?:

    @UserTrue Просто у меня есть конкурент, в которого прога на чистоv ноде. Я смогу ему не проиграть по скорости?

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



  • @Fox Я имею ввиду при одной и той же логике и тех же дейсвиях? (Чисто теоритически, понимаю, что такого не может быть)



  • @fOrest94 said in Где быстрее?:

    @Fox Я имею ввиду при одной и той же логике и тех же дейсвиях? (Чисто теоритически, понимаю, что такого не может быть)

    Смотрите, вся внутрянка скрипта может быть реализована через одно место, где парсится html регулярками, или выполняется куча других, лишних действий. В таком случае винить BAS в том, что он медленнее node будет не совсем корректно



  • @fOrest94 said in Где быстрее?:

    @UserTrue Просто у меня есть конкурент, в которого прога на чистой ноде. Я смогу ему не проиграть по скорости?

    Я же писал, что при грамотной логике скорость одинаковая.



  • Понял. Всем спасибо за советы)


Log in to reply
 

  • 2
  • 8
  • 4
  • 3
  • 6
  • 4
  • 7
  • 5