Obviously one could just do that without asking for "official"
permission, but I would assume it would be more productive if done by
the current maintainers.
BTW: We are just integrating changes for better NUMA and logical
processor support, since the performance is extremely limited by the
tendendency of .NET/Windows to not schedule on the same processor....
Any comments ?
With kind regards,
Matthias
I was working on another side project that I've just finished and I'm now free to port the missing revisions from the Java version.
We can either move the project on Git or I can give you commit access on Google code. There are quite a lot of revisions to port to match v2.7, we need to be careful to not diverge too much from the original version as it make it harder to port the code.
Olivier
I went ahead and forked the project onto Github and ported the latest
Java code in a couple hours this last weekend.
https://github.com/chrisa23/Disruptor.net
I did a very quick job of things, but I tried to stay close to the
Java.
I'm happy to be a committer on the official one and help get up to
date.
Chris
Cheers,
Matthias
Sent from my Windows Phone
Von: Chrisa23
Gesendet: 09.12.2011 15:33
An: Disruptor-net
Betreff: Re: github move to increase community participation ?
ok ... it seems we face a little diversion already...;)
what are the differences between the original google-code version and
the new port by chrisa23 ? I mean we all just want to build
applications using the disruptor and obviously would like to continue
to be close to the java implementation and thus benefit from any
advancements there. therefore the port should be as close to the java
code as possible to ease the migration. originally i even thought
about just using ikvm, but in order to make some changes to the code
were the java code is not extensible a simple port like the ones
discussed would indeed be better. but we should keep an eye on the
performance between the java version, a ikvm port and a real code
port.
so in order to get to my original point. which version should all devs
put their spare energy behind ? did anybody make throughput and
latency tests comparing the versions ?
matthias
I have followed the Disruptor project with interest and am keen to
contribute the project also. I think a move to github would be a good
one and would help increase participation. Do we have any plans to
move it over?
Cheers,
Alexis
The main piece of work at the moment is to port the missing revisions
from the Java version. What I've done in the past was to port
revisions one by one, looking at all changes in the Java version file
by file and running the perf test before and after each new revision
to garantee there was no functional or performance regression.
I'm not sure this is the type of work which will be easier if we
distribute the repository. Don't get me wrong, I like the idea of
moving to GitHub but I would prefer to port the code base to 2.7 first
and then migrate.
If you want to help I'm happy to give you guys access to the
repository, just send me your google account email.
I will write a wiki post with some guidelines.
Olivier
I’ve now ported disruptor-net to the Java version 2.7.
I’ve tried to keep the API as close as possible from the Java version to facilitate upcoming ports.
There are a few more things I want to finish/port before releasing a new version :
- port experimentals (there is an experimental MultithreadedClaimStrategy I haven’t ported yet + unit tests)
- port OnePublisherToOneProcessorUniCastRawThroughputTest and OnePublisherToThreeWorkerPoolThroughputTest (new performance tests)
- find a more flexible way to start threads (Disruptor.Start and WorkerPool.Start): I create threads manually since we don’t have an executor like in Java, need ot think about it… ideas welcome
- find an equivalent for LockSupport.parkNanos(1L); (Search TODOs in the code). This allow threads in Java to sleep for a very short period (micro seconds), not sure there is an equivalent on windows..
- port the DSL Tests
The performance tests run faster on my laptop than before, give it a try ;)
Olivier
De : disrup...@googlegroups.com [mailto:disrup...@googlegroups.com] De la part de Matthias Götzke
Envoyé : lundi 12 décembre 2011 11:04
À : disrup...@googlegroups.com
Objet : Re: github move to increase community participation ?
I’ve moved disruptor-net to github : https://github.com/odeheurles/Disruptor-net
I’m a noob with github so if you see anything misconfigured let me know ;)
Olivier
De : disrup...@googlegroups.com [mailto:disrup...@googlegroups.com] De la part de Olivier Deheurles
Envoyé : dimanche 18 décembre 2011 18:22
À : disrup...@googlegroups.com
Objet : RE: github move to increase community participation ?
1 core ;)
De : disrup...@googlegroups.com [mailto:disrup...@googlegroups.com] De la part de James Miles
Envoyé : lundi 19 décembre 2011 14:27
I use SpinWait in the SleepingWaitStrategy, but I’m looking for something that will sleep for microseconds, not millis.
/// <summary>
/// Sleeping strategy that uses a <see cref="SpinWait"/> while the <see cref="IEventProcessor"/>s are waiting on a barrier.
///
/// This strategy is a good compromise between performance and CPU resource. Latency spikes can occur after quiet periods.
/// </summary>
public sealed class SleepingWaitStrategy : IWaitStrategy
De : disrup...@googlegroups.com [mailto:disrup...@googlegroups.com] De la part de Jimit Ndiaye
Envoyé : lundi 19 décembre 2011 19:59
À : disrup...@googlegroups.com
Objet : Re: github move to increase community participation ?
I would imagine that the SpinWait structure would be ideal, rather than vanilla Thread.Yield/Spinwait. "SpinWait encapsulates common spinning logic. On single-processor machines, yields are always used instead of busy waits, and on computers with Intel™ processors employing Hyper-Threading™ technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of spinning and true yielding."
- find a more flexible way to start threads (Disruptor.Start and WorkerPool.Start): I create threads manually since we don’t have an executor like in Java, need ot think about it… ideas welcome