简化测试代码

master
linbin 2024-09-16 14:01:06 +08:00
parent dabed0519b
commit 46d7c5ecdd
7 changed files with 217 additions and 271 deletions

View File

@ -1,7 +1,6 @@
package org.example;
import com.jfirer.fse.ByteArray;
import com.jfirer.fse.Fse;
import com.jfirer.se2.JfireSE;
import org.apache.fury.Fury;
import org.apache.fury.config.Language;
@ -21,44 +20,48 @@ import java.util.concurrent.TimeUnit;
@OutputTimeUnit(TimeUnit.SECONDS)
@Fork(1)
@State(Scope.Benchmark)
public class BenchMarkWrite
public class BenchMark
{
Fse fse = new Fse();
Fse fse_3 = new Fse().useCompile();
TestData data = new TestData().setTestDataSm(new TestDataSm()).setTestDataSm2(new TestDataSm2());
ByteArray buf = ByteArray.allocate(100);
Fury fury = Fury.builder().withLanguage(Language.JAVA)//
.requireClassRegistration(false)//
.withRefTracking(true).build();
JfireSE jfireSE = JfireSE.config().refTracking().build();
byte[] serialize = jfireSE.serialize(data);
byte[] serialize2 = fury.serialize(data);
public void testFSENoCompile()
{
buf.clear();
fse.serialize(data, buf);
}
@Benchmark
public void testFury()
public void fury_write()
{
byte[] bytes = fury.serialize(data);
}
public void testFSEDirectCompile()
{
buf.clear();
fse_3.serialize(data, buf);
}
@Benchmark
public void testJfireSE()
public void jfireSe_write()
{
jfireSE.serialize(data);
}
@Benchmark
public void jfireSE_read()
{
jfireSE.deSerialize(serialize);
}
@Benchmark
public void fury_read()
{
fury.deserialize(serialize2);
}
public static void main(String[] args) throws RunnerException
{
Options opt = new OptionsBuilder().include(BenchMarkWrite.class.getSimpleName()).build();
Options opt = new OptionsBuilder().include(BenchMark.class.getSimpleName()).build();
new Runner(opt).run();
}
}

View File

@ -1,49 +0,0 @@
package org.example;
import com.jfirer.se2.JfireSE;
import org.apache.fury.Fury;
import org.apache.fury.config.Language;
import org.example.sm.TestDataSm;
import org.example.sm2.TestDataSm2;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import java.util.concurrent.TimeUnit;
@BenchmarkMode(Mode.Throughput)
@Warmup(iterations = 2, time = 3)
@Measurement(iterations = 3, time = 3)
@OutputTimeUnit(TimeUnit.SECONDS)
@Fork(1)
@State(Scope.Benchmark)
public class BenchMarkRead
{
Fury fury = Fury.builder().withLanguage(Language.JAVA)//
.requireClassRegistration(false)//
.withRefTracking(true).build();
JfireSE jfireSE = JfireSE.config().refTracking().build();
TestData data = new TestData().setTestDataSm(new TestDataSm()).setTestDataSm2(new TestDataSm2());
byte[] serialize = jfireSE.serialize(data);
byte[] serialize2 = fury.serialize(data);
@Benchmark
public void testJfireSERead()
{
jfireSE.deSerialize(serialize);
}
@Benchmark
public void testFuryRead()
{
fury.deserialize(serialize2);
}
public static void main(String[] args) throws RunnerException
{
Options opt = new OptionsBuilder().include(BenchMarkRead.class.getSimpleName()).build();
new Runner(opt).run();
}
}

View File

@ -1,59 +0,0 @@
package org.example;
import com.jfirer.se2.ByteArray;
import com.jfirer.se2.JfireSE;
import org.apache.fury.Fury;
import org.example.sm.TestDataSm;
import org.example.sm2.TestDataSm2;
import org.junit.Assert;
import org.junit.Test;
public class FunctionTest
{
@Test
public void test()
{
ByteArray byteArray = new ByteArray(1000);
byteArray.writeString("你好");
byteArray.writeString("nihao");
byteArray.writeVarInt(20);
byteArray.writeVarLong(13453242);
Assert.assertEquals("你好", byteArray.readString());
Assert.assertEquals("nihao", byteArray.readString());
Assert.assertEquals(20, byteArray.readVarInt());
Assert.assertEquals(13453242, byteArray.readVarLong());
}
@Test
public void test2()
{
TestDataSm sm = new TestDataSm();
sm.setC("dfdfdf");
TestData testData = new TestData();
testData.setB(true);
testData.setTestDataSm(sm);
testData.setTestDataSm2(new TestDataSm2());
TestDataSm[] sms = new TestDataSm[2];
sms[0] = new TestDataSm().setC("xx");
testData.setSms(sms);
JfireSE jfireSE = JfireSE.config().build();
byte[] bytes = jfireSE.serialize(testData);
Assert.assertEquals(testData, jfireSE.deSerialize(bytes));
TestData read = (TestData) jfireSE.deSerialize(bytes);
Assert.assertEquals("xx", read.getSms()[0].getC());
Assert.assertNull(read.getSms()[1]);
}
@Test
public void test3()
{
Fury fury = Fury.builder().requireClassRegistration(false).withRefTracking(true).build();
Home home = new Home();
Person person = new Person();
home.setPerson(person);
person.setHome(home);
fury.serialize(home);
JfireSE jfireSE = JfireSE.config().refTracking().build();
jfireSE.serialize(home);
}
}

View File

@ -1,7 +1,18 @@
package org.example.festest;
package org.example;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Output;
import com.jfirer.se2.ByteArray;
import com.jfirer.se2.JfireSE;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.fury.Fury;
import org.example.festest.Home;
import org.example.festest.User;
import org.example.festest.data.*;
import org.example.festest.data.Person;
import org.example.sm.TestDataSm;
import org.example.sm2.TestDataSm2;
import org.junit.Assert;
import org.junit.Test;
@ -9,12 +20,20 @@ import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Random;
import static org.junit.Assert.*;
@Slf4j
public class RightTest
{
@Data
public class MapDemo
{
private HashMap<Integer, BaseData> map = new HashMap<Integer, BaseData>();
}
@Test
public void baseTypeTest() throws IllegalArgumentException, IllegalAccessException, UnsupportedEncodingException, ClassNotFoundException, InstantiationException
{
@ -146,13 +165,13 @@ public class RightTest
@Test
public void referenceTest()
{
Person person = new Person("linbin", 25);
Person tPerson = new Person("zhangshi[in", 30);
org.example.festest.data.Person person = new org.example.festest.data.Person("linbin", 25);
org.example.festest.data.Person tPerson = new org.example.festest.data.Person("zhangshi[in", 30);
person.setLeader(tPerson);
tPerson.setLeader(person);
JfireSE jfireSE = JfireSE.config().refTracking().build();
byte[] serialize = jfireSE.serialize(person);
Person result = (Person) jfireSE.deSerialize(serialize);
org.example.festest.data.Person result = (org.example.festest.data.Person) jfireSE.deSerialize(serialize);
assertEquals("zhangshi[in", result.getLeader().getName());
}
@ -195,7 +214,7 @@ public class RightTest
public void objectArrayTest()
{
Object[] array = new Object[4];
array[0] = new Person();
array[0] = new org.example.festest.data.Person();
array[1] = new BaseData();
array[2] = new LongData();
array[3] = new WrapData();
@ -280,4 +299,103 @@ public class RightTest
System.out.println(method.equals(methodObjectTest));
assertEquals(methodObjectTest, method);
}
@Test
public void basetest()
{
JfireSE jfireSE = JfireSE.config().refTracking().build();
User user = new User();
user.setAge(123);
user.setName("aaa");
org.example.festest.Home home = new org.example.festest.Home();
home.setAddress("ssss");
home.setUser(user);
user.setHome(home);
byte[] serialize = jfireSE.serialize(user);
User another = (User) jfireSE.deSerialize(serialize);
Assert.assertEquals(user.getAge(), another.getAge());
Assert.assertEquals(user.getName(), another.getName());
Home home1 = user.getHome();
Assert.assertEquals(home.getAddress(), home1.getAddress());
}
@Test
public void longtest()
{
Kryo kryo = new Kryo();
kryo.setReferences(true);
Output output = null;
output = new Output(1, 15096);
kryo.writeClassAndObject(output, new LongData());
byte[] bb = output.toBytes();
System.out.println("LongData序列化kryo基础数据长度" + bb.length);
JfireSE jfireSE = JfireSE.config().refTracking().build();
byte[] serialize = jfireSE.serialize(new LongData());
System.out.println("LongData序列化jfirese基础数据长度" + serialize.length);
System.out.println("序列化长度减少" + (bb.length - serialize.length));
output = new Output(1, 15096);
kryo.writeClassAndObject(output, new BaseData(1));
bb = output.toBytes();
log.debug("basedata序列化kryo基础数据长度{}", bb.length);
byte[] serialize1 = jfireSE.serialize(new BaseData(1));
log.info("basedata序列化jfirese基础数据长度" + serialize1.length);
log.info("序列化长度减少{}", (bb.length - serialize1.length));
}
@Test
public void mapTest()
{
MapDemo demo = new MapDemo();
demo.getMap().put(1, new BaseData());
JfireSE jfireSE = JfireSE.config().staticRegisterClass(MapDemo.class).refTracking().build();
byte[] serialize = jfireSE.serialize(demo);
jfireSE.deSerialize(serialize);
}
@Test
public void test()
{
ByteArray byteArray = new ByteArray(1000);
byteArray.writeString("你好");
byteArray.writeString("nihao");
byteArray.writeVarInt(20);
byteArray.writeVarLong(13453242);
Assert.assertEquals("你好", byteArray.readString());
Assert.assertEquals("nihao", byteArray.readString());
Assert.assertEquals(20, byteArray.readVarInt());
Assert.assertEquals(13453242, byteArray.readVarLong());
}
@Test
public void test2()
{
TestDataSm sm = new TestDataSm();
sm.setC("dfdfdf");
TestData testData = new TestData();
testData.setB(true);
testData.setTestDataSm(sm);
testData.setTestDataSm2(new TestDataSm2());
TestDataSm[] sms = new TestDataSm[2];
sms[0] = new TestDataSm().setC("xx");
testData.setSms(sms);
JfireSE jfireSE = JfireSE.config().build();
byte[] bytes = jfireSE.serialize(testData);
Assert.assertEquals(testData, jfireSE.deSerialize(bytes));
TestData read = (TestData) jfireSE.deSerialize(bytes);
Assert.assertEquals("xx", read.getSms()[0].getC());
Assert.assertNull(read.getSms()[1]);
}
@Test
public void test3()
{
Fury fury = Fury.builder().requireClassRegistration(false).withRefTracking(true).build();
org.example.Home home = new org.example.Home();
org.example.Person person = new org.example.Person();
home.setPerson(person);
person.setHome(home);
fury.serialize(home);
JfireSE jfireSE = JfireSE.config().refTracking().build();
jfireSE.serialize(home);
}
}

View File

@ -1,38 +0,0 @@
package org.example.festest;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Output;
import com.jfirer.se2.JfireSE;
import lombok.extern.slf4j.Slf4j;
import org.example.festest.data.BaseData;
import org.example.festest.data.LongData;
import org.junit.Test;
import java.io.UnsupportedEncodingException;
@Slf4j
public class LongTest
{
@Test
public void longtest() throws IllegalArgumentException, IllegalAccessException, UnsupportedEncodingException, ClassNotFoundException, InstantiationException
{
Kryo kryo = new Kryo();
kryo.setReferences(true);
Output output = null;
output = new Output(1, 15096);
kryo.writeClassAndObject(output, new LongData());
byte[] bb = output.toBytes();
System.out.println("LongData序列化kryo基础数据长度" + bb.length);
JfireSE jfireSE = JfireSE.config().refTracking().build();
byte[] serialize = jfireSE.serialize(new LongData());
System.out.println("LongData序列化jfirese基础数据长度" + serialize.length);
System.out.println("序列化长度减少" + (bb.length - serialize.length));
output = new Output(1, 15096);
kryo.writeClassAndObject(output, new BaseData(1));
bb = output.toBytes();
log.debug("basedata序列化kryo基础数据长度{}", bb.length);
byte[] serialize1 = jfireSE.serialize(new BaseData(1));
log.info("basedata序列化jfirese基础数据长度" + serialize1.length);
log.info("序列化长度减少{}", (bb.length - serialize1.length));
}
}

View File

@ -1,27 +0,0 @@
package org.example.festest;
import com.jfirer.se2.JfireSE;
import lombok.Data;
import org.example.festest.data.BaseData;
import org.junit.Test;
import java.util.HashMap;
public class MapTest
{
@Data
public class MapDemo
{
private HashMap<Integer, BaseData> map = new HashMap<Integer, BaseData>();
}
@Test
public void test()
{
MapDemo demo = new MapDemo();
demo.getMap().put(1, new BaseData());
JfireSE jfireSE = JfireSE.config().staticRegisterClass(MapDemo.class).refTracking().build();
byte[] serialize = jfireSE.serialize(demo);
jfireSE.deSerialize(serialize);
}
}

View File

@ -2,7 +2,6 @@ package org.example.festest;
import java.io.Serializable;
public class TestData implements Serializable
{
private int a = 213212312;
@ -14,15 +13,15 @@ public class TestData implements Serializable
private double g = 231321.2132;
private float h = (float) 4986.2;
private String i = "123452312316789a";
// private int[] j = new int[]{1, 2, 4, 5};
// private boolean[] k = new boolean[]{true, false, true, false, false, false, true};
// private char[] l = new char[]{'a', 'v', 'q', 'j', 'h', 'e', 'f'};
// private byte[] m = new byte[]{0x32, 0x12, 0x34, (byte) 0x96};
// private short[] n = new short[]{3, 8, 213, 451, 312, 45};
// private long[] o = new long[]{12313131313l, 524141431313l, 3131231231425l, 1313123121l};
// private double[] p = new double[]{6468613646.48646d, 4646.456d, 546864648867.466d};
// private float[] q = new float[]{46486.2f, 49849.2f, 646854.6f};
// private String[] r = new String[]{"abcdf12345", "abdfcgf12323"};
private int[] j = new int[]{1, 2, 4, 5};
private boolean[] k = new boolean[]{true, false, true, false, false, false, true};
private char[] l = new char[]{'a', 'v', 'q', 'j', 'h', 'e', 'f'};
private byte[] m = new byte[]{0x32, 0x12, 0x34, (byte) 0x96};
private short[] n = new short[]{3, 8, 213, 451, 312, 45};
private long[] o = new long[]{12313131313l, 524141431313l, 3131231231425l, 1313123121l};
private double[] p = new double[]{6468613646.48646d, 4646.456d, 546864648867.466d};
private float[] q = new float[]{46486.2f, 49849.2f, 646854.6f};
private String[] r = new String[]{"abcdf12345", "abdfcgf12323"};
public boolean equals(Object x)
{
@ -31,69 +30,69 @@ public class TestData implements Serializable
TestData target = (TestData) x;
if (target.a == a && target.b == b && target.c == c && target.d == d && target.e == e && target.f == f && target.g == g && target.h == h && target.i.equals(i))
{
// for (int i = 0; i < target.j.length; i++)
// {
// if (target.j[i] != j[i])
// {
// return false;
// }
// }
// for (int i = 0; i < k.length; i++)
// {
// if (target.k[i] != k[i])
// {
// return false;
// }
// }
// for (int i = 0; i < l.length; i++)
// {
// if (target.l[i] != l[i])
// {
// return false;
// }
// }
// for (int i = 0; i < m.length; i++)
// {
// if (target.m[i] != m[i])
// {
// return false;
// }
// }
// for (int i = 0; i < n.length; i++)
// {
// if (target.n[i] != n[i])
// {
// return false;
// }
// }
// for (int i = 0; i < o.length; i++)
// {
// if (target.o[i] != o[i])
// {
// return false;
// }
// }
// for (int i = 0; i < p.length; i++)
// {
// if (p[i] != target.p[i])
// {
// return false;
// }
// }
// for (int i = 0; i < r.length; i++)
// {
// if (target.r[i].equals(r[i]) == false)
// {
// return false;
// }
// }
// for (int i = 0; i < q.length; i++)
// {
// if (q[i] != target.q[i])
// {
// return false;
// }
// }
for (int i = 0; i < target.j.length; i++)
{
if (target.j[i] != j[i])
{
return false;
}
}
for (int i = 0; i < k.length; i++)
{
if (target.k[i] != k[i])
{
return false;
}
}
for (int i = 0; i < l.length; i++)
{
if (target.l[i] != l[i])
{
return false;
}
}
for (int i = 0; i < m.length; i++)
{
if (target.m[i] != m[i])
{
return false;
}
}
for (int i = 0; i < n.length; i++)
{
if (target.n[i] != n[i])
{
return false;
}
}
for (int i = 0; i < o.length; i++)
{
if (target.o[i] != o[i])
{
return false;
}
}
for (int i = 0; i < p.length; i++)
{
if (p[i] != target.p[i])
{
return false;
}
}
for (int i = 0; i < r.length; i++)
{
if (target.r[i].equals(r[i]) == false)
{
return false;
}
}
for (int i = 0; i < q.length; i++)
{
if (q[i] != target.q[i])
{
return false;
}
}
return true;
}
else
@ -106,5 +105,4 @@ public class TestData implements Serializable
return false;
}
}
}