2012-07-11 62 views
3

我正在對Disruptor Queues的內部C實現進行性能測試,我很想將其他類似的方法用於非線程事件流處理的基準測試。 Google上很少,所以任何指針或建議都非常感謝。什麼是LMAX干擾隊列的高性能替代品?

+1

你是什麼意思的「非線程事件流處理」? – jasonk 2012-07-12 01:11:04

+0

對不起,延遲!大多數情況下,我的意思是我對非線程解決方案(例如分支,鎖等)感興趣,像Disruptor Queues或其他完全不同的方法。 – johnzachary 2012-09-07 18:25:30

+0

@johnzachary叉,鎖等意味着你是多線程的。這些功能在沒有線程的情況下實際上是無用的。我相信你的意思是說非阻塞,而不是單線程。如果使用得當,破壞者是一個相當有能力的系統。 – BAR 2015-08-19 07:21:43

回答

2

與C++是可能的,可以移植到C源)隊列目錄:

http://www.1024cores.net/home/lock-free-algorithms/queues/queue-catalog

是否已經移植其中的一個Scala和獲得比標準的java.util.concurrent更好的延遲和吞吐量.ConcurrentLinkedQueue:

https://github.com/plokhotnyuk/actors/blob/c92576e3b200180ee1c8ea521fb668c538f125ab/src/main/scala/com/github/plokhotnyuk/actors/MPSCQueue.scala

+0

謝謝。這是一個有趣的項目。 – johnzachary 2012-07-12 22:47:51

0

我會檢查出ØMQ並使用它們的線程間通信傳輸,zmq_inproc,通過PUSH/PULL sockets。溝通是單向的,但是是最快速的選擇。