Reactive Programming и Bayesian programming
От: Тёмчик Австралия жж
Дата: 14.07.17 11:32
Оценка:
Попал мне код, написанный коллегой. Там RxJava использована. Я его малость подрефакторил и немного покурил доку по RxJava. Нравится эта штука! Это введение. Теперь мысль- в теории там Observable и push. Можно ли легко и непринуждённо построить behavior tree, где observable- это узел? Например, селектор и у него дочерние узлы- это подписчики. Можно ли опять же, легко и непринужденно построить дерево, где узлы-селекторы обеспечивают conditional probability, и всё это на лямбдах, с минимумом кода?
Re: Reactive Programming и Bayesian programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.08.17 18:57
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Попал мне код, написанный коллегой. Там RxJava использована. Я его малость подрефакторил и немного покурил доку по RxJava. Нравится эта штука! Это введение. Теперь мысль- в теории там Observable и push. Можно ли легко и непринуждённо построить behavior tree, где observable- это узел? Например, селектор и у него дочерние узлы- это подписчики. Можно ли опять же, легко и непринужденно построить дерево, где узлы-селекторы обеспечивают conditional probability, и всё это на лямбдах, с минимумом кода?


Можно. Более того — так и нужно делать. Рут меняется, за ним все ветки на которые есть подписки. Правда при этом пострадает перформанс и расход памяти.
Re[2]: Reactive Programming и Bayesian programming
От: Тёмчик Австралия жж
Дата: 25.08.17 01:10
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Можно. Более того — так и нужно делать. Рут меняется, за ним все ветки на которые есть подписки. Правда при этом пострадает перформанс и расход памяти.


Насчёт performance не оч понятно, ибо это ж behavior tree- оно делает 1 шаг по каждому тику. Там 1 управляющий поток, который шлет "тики". И про rxjava, сколько пытался с ним сладить- у него нерешенная проблема с синхронизацией источника событий и приемника. Если приемник в другом потоке и не поспевает обрабатывать- очередь из событий разрастается, пока не свалится с OutOfMemory. Способа заставить источник подождать, пока приемник разгребет бэклог- нет.
Re[3]: Reactive Programming и Bayesian programming
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.08.17 08:50
Оценка:
Здравствуйте, Тёмчик, Вы писали:

I>>Можно. Более того — так и нужно делать. Рут меняется, за ним все ветки на которые есть подписки. Правда при этом пострадает перформанс и расход памяти.


Тё>Насчёт performance не оч понятно, ибо это ж behavior tree- оно делает 1 шаг по каждому тику. Там 1 управляющий поток, который шлет "тики". И про rxjava, сколько пытался с ним сладить- у него нерешенная проблема с синхронизацией источника событий и приемника. Если приемник в другом потоке и не поспевает обрабатывать- очередь из событий разрастается, пока не свалится с OutOfMemory. Способа заставить источник подождать, пока приемник разгребет бэклог- нет.


Тики могут слаться по всякому, зависит от шедулера. Перформанс страдает за счет конских издержек на порцию данных. То есть, RX нужен для связывания.
backpressure вроде как уже реализован, но я не сильно слежу за RX.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.