codenotknock commented on issue #1104:
URL: https://github.com/apache/fury/issues/1104#issuecomment-2177419587

   ```java
   public class FurySerializer implements MySerializer {
       private Fury fury;
   
       public FurySerializer() {
   
           fury = Fury.builder().withLanguage(Language.JAVA)
               .withRefTracking(false)
               .requireClassRegistration(false)
               .build();
       }
   
       @Override
       public <T extends Serializable> byte[] serialize(T obj) {
           return fury.serialize(obj);
       }
   
       @Override
       public <T extends Serializable> T deSerialize(byte[] bytes, Class<T> 
clazz) {
           return (T) fury.deserialize(bytes);
       }
   }
   ```
   ```java
   @Warmup(iterations = 10, time = 2)
   @Measurement(iterations = 30, batchSize = 100)
   @Fork(2)
   @State(Scope.Thread)
   public class BaseJMH {
       static BaseEntity[] entityArray = new BaseEntity[entityCreators.length];
       static byte[][] entityBytesArray = new byte[entityCreators.length][];
   
       @Param(value = {"1", "1"})
       private int length;
   
       /**
        * 初始化 测试数据
        *
        * @param serializer
        */
       protected void init(MySerializer serializer) {
           try {
               for (int n = 0; n < entityCreators.length; n++) {
                   entityArray[n] = entityCreators[n].create();
                   entityBytesArray[n] = serializer.serialize(entityArray[n]);
               }
           } catch (Exception e) {
               e.printStackTrace();
           }
       }
   
       /**
        * 序列化测试
        *
        * @param bh
        * @throws Exception
        */
       @Benchmark
       public void testMultiThreadSharedSingletonSerialize(Blackhole bh) throws 
Exception {
           MySerializer serializer = getSingletonSerializer();
           for (int n = 0; n < entityArray.length; n++) {
               bh.consume(serializer.serialize(entityArray[n]));
           }
           bh.consume(length);
       }
   
       /**
        * 反序列化测试
        *
        * @param bh
        * @throws Exception
        */
       @Benchmark
       public void testMultiThreadSharedSingletonDeserialize(Blackhole bh) 
throws Exception {
           MySerializer serializer = getSingletonSerializer();
           for (int n = 0; n < entityBytesArray.length; n++) {
               bh.consume(serializer.deSerialize(entityBytesArray[n], 
entityArray[n].getClass()));
           }
           bh.consume(length);
       }
   
       /**
        * 序列化测试
        *
        * @param bh
        * @throws Exception
        */
       @Benchmark
       public void testMultiThreadMultitonSerialize(Blackhole bh) throws 
Exception {
           MySerializer serializer = getMultitonSerializer();
           for (int n = 0; n < entityArray.length; n++) {
               bh.consume(serializer.serialize(entityArray[n]));
           }
           bh.consume(length);
       }
   
       /**
        * 反序列化测试
        *
        * @param bh
        * @throws Exception
        */
       @Benchmark
       public void testMultiThreadMultitonDeserialize(Blackhole bh) throws 
Exception {
           MySerializer serializer = getMultitonSerializer();
           for (int n = 0; n < entityBytesArray.length; n++) {
               bh.consume(serializer.deSerialize(entityBytesArray[n], 
entityArray[n].getClass()));
           }
           bh.consume(length);
       }
   
       protected MySerializer getMultitonSerializer() {
           return null;
       }
   
   
       protected MySerializer getSingletonSerializer() {
           return null;
       }
   
       protected String getClassName() {
           return null;
       }
   
       @Test
       public void doTest() throws RunnerException {
           Options opt = new OptionsBuilder()
               .include(getClassName())
               .build();
           new Runner(opt).run();
       }
   
   
   }
   ```
   ```java
   @Threads(8)
   public class TestFurySerializer extends BaseJMH {
   
       static MySerializer singletonSerializer = 
SerializerCreatorFactory.FurySerializerCreator.INSTANCE.create();
       MySerializer multitonSerializer = 
SerializerCreatorFactory.FurySerializerCreator.INSTANCE.create();
   
       public TestFurySerializer() {
           init(singletonSerializer);
       }
   
       @Override
       public MySerializer getMultitonSerializer() {
           return singletonSerializer;
       }
   
       @Override
       public MySerializer getSingletonSerializer() {
           return multitonSerializer;
       }
   
       @Override
       public String getClassName() {
           return this.getClass().getSimpleName();
       }
       
   
   }
   
   ```
   ```java
   @Data
   public class Consumer extends BaseEntity {
       private LocalDateTime modified;
   
       private long oid;
   
       private String ype;
   
       private String ick;
   
       private long tid;
   
   
       public static Consumer build() {
           Consumer consumer = new Consumer();
   
           consumer .setModified(LocalDateTime.now());
           consumer .setOid(216356211771L);
           consumer .setYpe("refund");
           consumer .setIck("302047");
           consumer .setTid(211771L);
           return consumer ;
       }
   
   }
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to