package Ġio . vin cent . learning . stack . netty . codec . encode Ċ Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . Object OutputStream Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠTest ĠEncode Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠV in cent Ġon Ġ 2 0 1 8 / 8 / 2 9 . Ċ Ġ* Ġ@ author ĠV in cent Ċ Ġ* Ġ@ since Ġ 1 . 0 , Ġ 2 0 1 8 / 8 / 2 9 Ċ Ġ*/ Ċ object ĠMessage Encode Test Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage ( 1 0 0 0 , Ġ" Learning ĠNet ty !", Ġ 3 0 , ĠDate (), Ġ 2 0 0 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġprintln (" ------------------------------------------------ ------ ") ĊĠĠĠĠĠĠĠ Ġtest Encode Byte Size ( message ) ĊĊĠĠĠĠĠĠĠ Ġprintln (" ------------------------------------------------ ------ ") ĊĠĠĠĠĠĠĠ Ġtest Encode S pend ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġencode Ġbyte Ġsize ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġtest Encode Byte Size ( message : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval ĠoutputStream Ġ= ĠObject OutputStream ( out ) ĊĠĠĠĠĠĠĠ ĠoutputStream . write Object ( message ) ĊĠĠĠĠĠĠĠ ĠoutputStream . flush () ĊĠĠĠĠĠĠĠ ĠoutputStream . close () ĊĠĠĠĠĠĠĠ Ġval ĠbyteArray Ġ= Ġout . toByteArray () ĊĊĠĠĠĠĠĠĠ Ġprintln (" JDK Ġserial izable Ġlength Ġis : Ġ${ byteArray . size } Ġbyte ") ĊĠĠĠĠĠĠĠ Ġout . close () ĊĊĠĠĠĠĠĠĠ Ġprintln (" ------------------------------------------------ ------ ") ĊĠĠĠĠĠĠĠ Ġval Ġbyte Buffer Ġ= ĠByteBuffer . allocate ( 1 0 2 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġcode C Ġ= Ġmessage . code C ( byte Buffer ) ĊĠĠĠĠĠĠĠ Ġprintln (" N IO Ġbyte Ġarray Ġserial izable Ġlength Ġis : Ġ${ code C . size } Ġbyte ") ĊĊĠĠĠĠĠĠĠ Ġprintln (" ------------------------------------------------ ------ ") ĊĠĠĠĠĠĠĠ Ġprintln (" Rate : Ġ${ byteArray . size Ġ/ Ġcode C . size }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġencode Ġspend ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġtest Encode S pend ( message : ĠMessage ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġloop Ġ= Ġ 1 0 0 0 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġvar Ġout : ĠByteArrayOutputStream ĊĠĠĠĠĠĠĠ Ġvar ĠoutputStream : ĠObject OutputStream ĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. loop ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream Ġ= ĠObject OutputStream ( out ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream . write Object ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream . flush () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġend Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġprintln (" JDK Ġserial izable Ġtime Ġis : Ġ${ end Ġ- Ġstart } Ġms ") ĊĠĠĠĠĠĠĠ Ġprintln (" ------------------------------------------------ ------ ") ĊĠĠĠĠĠĠĠ Ġval Ġbyte Buffer Ġ= ĠByteBuffer . allocate ( 1 0 2 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġc Start Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. loop ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . code C ( byte Buffer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġc End Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġprintln (" N IO Ġbyte Ġarray Ġserial izable Ġtime Ġis : Ġ${ c End Ġ- Ġc Start } Ġms ") ĊĊĠĠĠĠĠĠĠ Ġprintln (" ------------------------------------------------ ------ ") ĊĠĠĠĠĠĠĠ Ġprintln (" Rate : Ġ${ ( end Ġ- Ġstart ) Ġ/ Ġ( c End Ġ- Ġc Start )} ") ĊĠĠĠ Ġ} Ċ }