开发手机端网站,深圳商场设计公司排名,文件标签wordpress,小票在线生成小程序disruptor3我决定对整个版本的Disruptor都放置一个beta标签感到无聊#xff0c;所以我决定将Disruptor 3.0.0发行到全世界。 此版本的最大挑战是清理代码并提出更好的算法来处理多个生产者。 如果我很幸运#xff0c;可以更快。 在发布此版本时#xff0c;我最初走了几个阴暗… disruptor3 我决定对整个版本的Disruptor都放置一个beta标签感到无聊所以我决定将Disruptor 3.0.0发行到全世界。 此版本的最大挑战是清理代码并提出更好的算法来处理多个生产者。 如果我很幸运可以更快。 在发布此版本时我最初走了几个阴暗的小巷但与2.x版本的区别不大但是又带来了一些好处。 我本来想实施一些功能测试并改善文档但是我可能会一直等到那些方面直到我100满意为止。 改进了对多个生产者的支持 Disruptor的2.x版本真正令人讨厌的问题之一是它附带了ClaimStrategy的2种实现。 一种是用于线程多于CPU的情况另一种用于线程少的情况。 这有点难看。 现在第3版只有一个MultiProducerSequencer稍后会在Sequencers / ClaimStrategies上提供更多信息在两种情况下都可以正常工作。 对于无竞争的情况我们以前的实现大约是18M ops / sec v 15M ops / sec *但速度较慢但是随着线程数量的增加和CPU数量的增加扩展性会更好。 去年我在TechMesh和JAX London上做了一些关于新实现的讨论。 如果您对算法的细节感兴趣可以观看有关JAX London演讲的YouTube视频 。 没有更多的索赔策略 内部设计和API的主要变化之一是我摆脱了ClaimStrategy接口。 通过对多生产者用例进行的一些更改它变得很麻烦。 因此我删除了它而是提供了覆盖2个重要用例的SequencerSingleProducerSequencer和MultiProducerSequencer的2种实现。 很抱歉我们不再允许用户在其中插入自己的实现但是结果使代码变得更加简洁简单和快捷。 单生产者案例更快 从一个生产者到一个消费者基准测试*第3版的运行速度约为2.2亿每秒而第2版的运行速度约为8000万每秒。这主要是总体清理例如删除ClaimStrategies和一些小优化的结果。 改进的用于RingBuffer的EventTranslator API RingBuffer现在支持的EventTranslator API现在具有用于传递给EventTranslator实现的1、2、3和Varargs参数的变体。 这意味着不必通过匿名内部类或通过EventTranslator实现中的字段推送值来完成对EventTranslator的输入。 它还使将EventTranslators编写为易于测试的独立单元变得更加容易。 代码隔离FTW 定序器的批量生产者接口 我不是我们现有的批量生产者接口的忠实拥护者最初我打算将其转储。 经过一番思考我将其部分重新添加了。即它仅在Sequencer上可用。 如果我可以提出一个干净安全的API来公开该功能则可以稍后将其添加到RingBuffer中。 出于兴趣我添加了使用批处理接口的原始定序器吞吐量测试。 该测试没有实际作用只是在线程之间发出信号。 但是我证明了Disruptor不能做任何有用的事情它以10批为单位的速度超过4000000000000 ops / sec。 无论如何这都不是一个有用的基准但是对于吹牛的权利来说却是一个很好的选择 特别提及 有一些人帮助将Disruptor从版本2状态升级到版本3 Jason Koch亲自做了大量JavaDoc。 自合并他的请求请求以来我一直在努力使其保持最新状态。 Dalibor Novak和Danny YatesGithub和Gradle迁移。 Adrian Sutton有关DSL的进一步工作。 马丁·汤普森Martin Thompson对于他的许多有用想法尤其是围绕支持多个生产者的算法。 现在可以从Maven Central和Github下载页面获得 。 *所有测试都是在3.40 GHz – YMMV的Intel Core i7-3770Ivy Bridge上完成的。 参考来自Bad Concurrency博客的JCG合作伙伴 Michael Barker 发布了Disruptor 3.0.0 。 翻译自: https://www.javacodegeeks.com/2013/04/release-of-disruptor-3-0-0.htmldisruptor3