1

我正在为 Disruptor 环形缓冲区中的事件使用 Javolution Struct 类——这似乎是使我的消息对缓存更友好的最简单方法。不过,我以前没有使用 Javolution 的经验,并且几乎没有找到有关调整 Javolution 的教程的资料。

我的问题是:

  1. 使用这种方法(即使用 Javolution Structs 作为事件类)我应该注意哪些缺点?
  2. 是否有任何我应该注意的特定于 Javolution 的优化?到目前为止,我发现并使用的唯一调整参数是:

    @Override public boolean isPacked() { return true; }

提前致谢

- 编辑 -

给予或接受,课程如下所示:

public class DisruptorEvent extends Struct {
    Signed8 field1 = new Signed8();
    Signed32 field2 = new Signed32();
    Signed64 field3 = new Signed64();
    Signed64 field4 = new Signed64();
    Signed64 field5 = new Signed64();
    Signed32 field6 = new Signed32();

    @Override
    public boolean isPacked() {
        return true;
    }
}
4

1 回答 1

0

除了打包之外,您还应该注意 byteOrder(),返回大/小端。

请注意,javolutionStruct使用 ByteBuffer 而不是 byte[]。我不清楚您是否需要序列化,但如果需要,请确保您使用已“倒带”的 ByteBuffers

于 2019-05-18T13:10:30.227 回答