Reactive Ruby

Malte Viering cu26mawy at rbg.informatik.tu-darmstadt.de
Wed Jul 22 12:56:20 UTC 2015


Sorry for a second mail however it seems that the mail server removed 
the formatting of the table. Therefore, the table without formatting 
follows:

BName; ReactiveRuby; Observer
Chain; 0.02sec; 0.02sec
FanA; 0.1 sec; 0.08sec
FanB; 0.08 sec; 0.03 sec
RFanA; 0.1 sec; 0.13 sec
RFanB; 0.02 sec; 0.03 sec

Am 22.07.2015 um 14:48 schrieb Malte Viering:
> Hallo Stefan,
>
> an important disclaimer is that the scope of our evaluation is still 
> rather limited which is also why we did not include any performance 
> numbers to the announcement of Reactive Ruby. However, we are happy to 
> share our current results.
>
> The evaluation is based on benchmarks which measure the time to 
> propagate changes through a dependency graph. The result is compared 
> to an Observer design pattern implementation that mimics the same 
> functionality.
>
> We consider graphs shaped like a chain, fan and reverse fan. I 
> attached pics that visualize the graph structure of these benchmarks. 
> In all benchmarks the nodes perform simple calculations, like adding a 
> constant value to the value of their predecessor node or adding the 
> values of all predecessors together. In the chain and fan benchmarks 
> 200k change events are propagated and in the reverse fan benchmarks 
> 1.6kk change events are propagated.
>
> The measured time in these benchmarks is the following:
>
>
>
>
>
>
>
> Reactive Ruby
>
>
>
> Observer
>
> Chain
>
>
>
> 0.02 sec
>
>
>
> 0.02 sec
>
> Fan A
>
>
>
> 0.1  sec
>
>
>
> 0.08 sec
>
> Fan B
>
>
>
> 0.08 sec
>
>
>
> 0.03 sec
>
> Reverse fan A
>
>
>
> 0.1  sec
>
>
>
> 0.13 sec
>
> Reverse fan B
>
>
>
> 0.02 sec
>
>
>
> 0.03 sec
>
>
>
> We think that these initial results are promising as they show that -- 
> at least in these benchmarks -- Reactive Ruby can reach around the 
> same performance than the hand-made observer pattern. We also 
> evaluated the performance of Reactive Programming languages in 
> JavaScript with a similar benchmark setup. In that evaluation Rx.JS 
> was on average around a factor 10 slower than the handmade Observer 
> pattern, Rx.JS was the fasted evaluated RP languages in JS.
>
> Best
>
> Malte Viering
>
>
> Am 21.07.2015 um 12:17 schrieb Stefan Marr:
>> Hi Malte:
>>
>>> On 20 Jul 2015, at 22:40, Malte Viering 
>>> <cu26mawy at rbg.informatik.tu-darmstadt.de> wrote:
>>>
>>> Despite its increasing popularity Reactive Programming still suffers
>>> from a significant performance overhead. In my thesis, I looked into
>>> the option of using Truffle to provide an efficient runtime system for
>>> Reactive Programming.
>> Very interesting project, thanks for sharing!
>>
>> Do you perhaps have some numbers to share with respect to performance?
>>
>> Thanks
>> Stefan
>>
>



More information about the graal-dev mailing list