Сериализация Java против MsgPack против Bson - PullRequest
0 голосов
/ 29 августа 2018

Я работаю с веб-сокетами, я хочу, чтобы процесс отправки / получения данных был максимально быстрым. Я сталкивался с библиотеками BSON и MsgPack для двоичной сериализации. Однако, используя простые тесты:

@Message
class MessageTemplate implements Serializable {
    public String msg;
}

public class test {
    static void start(){
        MessageTemplate x = new MessageTemplate();
        for (int i = 0; i < 1000; ++i)
            x.msg += UUID.randomUUID().toString();
        System.out.println("===============================================================");
        {
            long startTime = System.nanoTime();
            byte[] bytes = SerializationUtils.serialize(x);
            MessageTemplate x1 = (MessageTemplate) SerializationUtils.deserialize(bytes);
            long endTime = System.nanoTime();
            long duration = (endTime - startTime);
            System.out.println("TIME1:" + String.valueOf(duration) + ", SIZE: " + bytes.length);
        }
        System.out.println("===============================================================");
        MessagePack msgpack = new MessagePack();

        {
            long startTime = System.nanoTime();
            try {
                byte[] b = msgpack.write(x);
                MessageTemplate dst = msgpack.read(b, MessageTemplate.class);
                long endTime = System.nanoTime();
                long duration = (endTime - startTime);
                System.out.println("TIME1:" + String.valueOf(duration) + ", SIZE: " + b.length);
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }

}

Выход:

starting===============================================================
TIME1:2560388, SIZE: 36171
===============================================================
TIME1:93729732, SIZE: 36013

Кажется, что сериализация намного быстрее, чем MsgPack. Однако в процессе поиска я не нашел упоминания о сериализации java как о «сериализации / формате библиотеки».

Каковы недостатки его использования? Почему это или не используется? Единственный недостаток, который я вижу, это то, что мобильное приложение будет иметь клиент ios / android, поэтому в каждом случае не будет java с обеих сторон.

Спасибо за помощь и ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...