From a4553bf6a8e5006bbadf03e35ddf10467c21239d Mon Sep 17 00:00:00 2001 From: godotg Date: Thu, 22 Sep 2022 15:10:32 +0800 Subject: [PATCH] =?UTF-8?q?test[protocol]:=20kryo=E6=90=9E=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E8=BF=90=E8=A1=8C=E6=8A=A5=E9=94=99=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zfoo/protocol/SpeedTest.java | 71 ++++++++++--------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/protocol/src/test/java/com/zfoo/protocol/SpeedTest.java b/protocol/src/test/java/com/zfoo/protocol/SpeedTest.java index f72e6d71..575aa165 100644 --- a/protocol/src/test/java/com/zfoo/protocol/SpeedTest.java +++ b/protocol/src/test/java/com/zfoo/protocol/SpeedTest.java @@ -139,42 +139,47 @@ public class SpeedTest { @Ignore @Test public void kryoTest() { - var kryo = kryos.get(); + try { + var kryo = kryos.get(); - var output = new UnsafeOutput(1024 * 8); - var input = new UnsafeInput(output.getBuffer()); + var output = new UnsafeOutput(1024 * 8); + var input = new UnsafeInput(output.getBuffer()); - // 序列化和反序列化简单对象 - long startTime = System.currentTimeMillis(); - for (int i = 0; i < benchmark; i++) { - input.reset(); - output.reset(); - kryo.writeObject(output, simpleObject); - var mess = kryo.readObject(input, SimpleObject.class); + // 序列化和反序列化简单对象 + long startTime = System.currentTimeMillis(); + for (int i = 0; i < benchmark; i++) { + input.reset(); + output.reset(); + kryo.writeObject(output, simpleObject); + var mess = kryo.readObject(input, SimpleObject.class); + } + + System.out.println(StringUtils.format("[kryo] [简单对象] [thread:{}] [size:{}] [time:{}]", Thread.currentThread().getName(), output.position(), System.currentTimeMillis() - startTime)); + + // 序列化和反序列化常规对象 + startTime = System.currentTimeMillis(); + for (int i = 0; i < benchmark; i++) { + input.reset(); + output.reset(); + kryo.writeObject(output, normalObject); + var mess = kryo.readObject(input, NormalObject.class); + } + + System.out.println(StringUtils.format("[kryo] [常规对象] [thread:{}] [size:{}] [time:{}]", Thread.currentThread().getName(), output.position(), System.currentTimeMillis() - startTime)); + + // 序列化和反序列化复杂对象 + startTime = System.currentTimeMillis(); + for (int i = 0; i < benchmark; i++) { + input.reset(); + output.reset(); + kryo.writeObject(output, complexObject); + var mess = kryo.readObject(input, ComplexObject.class); + } + System.out.println(StringUtils.format("[kryo] [复杂对象] [thread:{}] [size:{}] [time:{}]", Thread.currentThread().getName(), output.position(), System.currentTimeMillis() - startTime)); + } catch (Exception e) { + System.err.println(e.getMessage()); + System.err.println("JDK17 运行kryo会报错,等kryo修复bug"); } - - System.out.println(StringUtils.format("[kryo] [简单对象] [thread:{}] [size:{}] [time:{}]", Thread.currentThread().getName(), output.position(), System.currentTimeMillis() - startTime)); - - // 序列化和反序列化常规对象 - startTime = System.currentTimeMillis(); - for (int i = 0; i < benchmark; i++) { - input.reset(); - output.reset(); - kryo.writeObject(output, normalObject); - var mess = kryo.readObject(input, NormalObject.class); - } - - System.out.println(StringUtils.format("[kryo] [常规对象] [thread:{}] [size:{}] [time:{}]", Thread.currentThread().getName(), output.position(), System.currentTimeMillis() - startTime)); - - // 序列化和反序列化复杂对象 - startTime = System.currentTimeMillis(); - for (int i = 0; i < benchmark; i++) { - input.reset(); - output.reset(); - kryo.writeObject(output, complexObject); - var mess = kryo.readObject(input, ComplexObject.class); - } - System.out.println(StringUtils.format("[kryo] [复杂对象] [thread:{}] [size:{}] [time:{}]", Thread.currentThread().getName(), output.position(), System.currentTimeMillis() - startTime)); } @Ignore