Rx Contrib – new release

2011/08/09

Rx Contrib – new release

profiler, Rx, Reactive Extension, IObservable, IObserver, ISubject, Subject, Trace, Contrib

 

finally I got the time to update the Rx Contrib with the Rx release bits.

the release contain couple of new features and refactoring.

 

This a snapshot of what’s in the release:

  • The ReactiveQueue was refactor to QueueSubject.
  • The static Create method overload has changed:
    • now it is having a flags which can define it’s behaviors, a-sync and whether to
      publish performance counter (currently ETW counter are not enabled),
      It also can be configure to run synchronously (for debug purpose).
  • New dll (System.Reactive.Contrib.Profile.dll) is adding real-time profiling capabilities.
    It comes with TraceViewer (System.Reactive.Contrib.TraceViewer.exe) which will present the profiling information.
    Currently the profiling data transferred its datum over WCF queue binding (in the future it will use ETW).
    You can check it out by running the TraceViewr and then run the
    System.Reactive.Contrib.TestProfile.exe (under the test folder).

profiler, Rx, Reactive Extension, IObservable, IObserver, ISubject, Subject, Trace, Contrib

  • Buffer with time and count were renamed to BufferSafe.
    It is a thread safe buffer (the out of the box buffer is not thread-safe and you
    should use the Synchronize before the Buffer if the buffer input come from multiple threads),
    for example:
    Observable.Interval(…).ObserveOn(Scheduleer.TaskPool).Synchronize().Buffer(10);
  • Finally the motivation to use QueueSubject instead of the standard Subjects is performance.
    On intensive data flow scenarios QueueSubject perform up to 30 times faster than
    the standard one (this is because it doesn’t over subscribe the system and reuse the tasks).
    you can check it by running the System.Reactive.Contrib.ConsoleStress.exe
    when it finish all of the test it will summarize the result (be aware that when it write Byte[] this mean it has used the standard Subject all other information represent different mode of the QueueSubject).
     
Summary

you can use parts of the contrib project (like the profiler or buffer).

you can use it with both RX release version v0.1.10621 and v1.1.10621.

download available here.

you can download the code and and see the tests for better understanding of how to use it.

 

on future post I will discuss the profiler in greater details.

 

Shout it kick it on DotNetKicks.com

Digg This
Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published.

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>