Измерение времени сериализации и десериализации - PullRequest
2 голосов
/ 19 февраля 2020

В дополнение к моему предыдущему вопросу, пожалуйста, есть ли способ измерить время, необходимое серверу gremlin для сериализации и десериализации запроса запроса от клиента? Например, если клиент является приложением java, которое отправляет запрос на сервер gremlin, работающий на удаленном сервере, есть ли способ измерить время, с которого сервер gremlin получает запрос, десериализует его перед выполнением запроса?

Большое спасибо

1 Ответ

1 голос
/ 19 февраля 2020

Нет - я не могу придумать, как это сделать напрямую, но когда вы пишете свое требование к синхронизации следующим образом:

время от точки, когда сервер gremlin получает запрос, десериализует его, перед выполнением запроса

похоже, что вам нужно только измерить время десериализации, и в этом случае я бы посоветовал вам убрать сам Gremlin Server и написать тесты производительности для десериализатора напрямую. Вы можете написать свои тесты для реализации драйвера MessageSerializer, которую можно найти здесь . Эти классы используются и драйвером, и сервером для всех операций сериализации / десериализации.

Я не уверен, какой тип теста вы хотите написать, но в самом простом случае вы могли бы просто создать экземпляр Сериализатор, который вы проверяете, например, GraphSONMessageSerializerV3d0, создайте RequestMessage как ByteBuf (единственная «трудная» часть) и установите время вызова метода на deserializeRequest(). Вы можете увидеть пример того, как все это работает в микро-бенчмарках TinkerPop для сериализации здесь , в которой используется инструментарий JMH.

...