比Java NIO的ByteBuffer性能更快的Chronicle-Bytes!

比Java NIO的ByteBuffer性能更快的Chronicle-Bytes! 如圖,紅色的Bytes比藍色的ByteBuffer在序列化等方面性能要高得多!

使用Bytes設置具有遠程過程調用(RPC)和API的整個框架很容易,它支持寫入和重放事件。這是一個簡短的例子,其中MyPerson是一個實現接口的POJO BytesMarshable。我們不必實現任何方法,BytesMarshallable因為它帶有默認實現。

<b>public</b> <b>final</b> <b>class</b> MyPerson implements BytesMarshallable {

    <b>private</b> String name;
    <b>private</b> byte type;
    <b>private</b> <b>double</b> balance;

    <b>public</b> MyPerson(){}

  <font><i>// Getters and setters not shown for brevity</i></font><font>

}

<b>interface</b> MyApi {
    @MethodId(0x81L)
    <b>void</b> myPerson(MyPerson byteable);
}

<b>static</b> <b>void</b> serialize() {
    MyPerson myPerson = <b>new</b> MyPerson();
    myPerson.setName(</font><font>"John"</font><font>);
    yPerson.setType((byte) 7);
    myPerson.setBalance(123.5);

    HexDumpBytes bytes = <b>new</b> HexDumpBytes();
    MyApi myApi = bytes.bytesMethodWriter(MyApi.<b>class</b>);

    myApi.myPerson(myPerson);

    System.out.println(bytes.toHexString());

}
</font>

序列化產生的輸出:

81 01                                    # myPerson
   04 4a 6f 68 6e                           # name
   07                                   # type
   00 00 00 00 00 e0 5e 40                     # balance

很容易看出消息的組成方式。

創建文件映射字節非常簡單,隨著更多數據的附加而增長,如下所示:

<b>try</b> {
    MappedBytes mb = MappedBytes.mappedBytes(<b>new</b> File(<font>"mapped_file"</font><font>), 1024);
    mb.appendUtf8(</font><font>"John"</font><font>)
    .append(4.3f);
} <b>catch</b> (FileNotFoundException fnfe) {
    fnfe.printStackTrace();
}
</font>

這將創建一個名為“mapped_file”的內存映射文件。

$ hexdump mapped_file 
0000000 4a 6f 68 6e 34 2e 33 00 00 00 00 00 00 00 00 00
0000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0001400

原文 

https://www.jdon.com/52537

本站部分文章源于互聯網,本著傳播知識、有益學習和研究的目的進行的轉載,為網友免費提供。如有著作權人或出版方提出異議,本站將立即刪除。如果您對文章轉載有任何疑問請告之我們,以便我們及時糾正。

PS:推薦一個微信公眾號: askHarries 或者qq群:474807195,里面會分享一些資深架構師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析,高并發、高性能、分布式、微服務架構的原理,JVM性能優化這些成為架構師必備的知識體系。還能領取免費的學習資源,目前受益良多

轉載請注明原文出處:Harries Blog? » 比Java NIO的ByteBuffer性能更快的Chronicle-Bytes!

贊 (0)
分享到:更多 ()

評論 0

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
2013平特肖公式