Как влияет на производительность использование BinarySerializer над XmlSerializer в NServiceBus
Я занимаюсь оптимизацией улучшения производительности и обнаружил, что некоторые сообщения, не обязательно большие по размеру, но сложные по структуре, занимают больше времени, чтобы получить их в обработчике после отправки, около 3 секунд между конечной точкой, работающей на той же физической машине. Я подозреваю, что Serializer требует больше времени для обработки сериализации и десериализации. Я использую BinarySerializer, есть ли способ рассчитать время, затраченное сериализатором. Есть ли способ вызвать сериализатор с модульным тестированием (NServiceBus.Test)
2 ответа
Есть ли способ рассчитать время, затраченное на сериализатор
Лучше всего, чтобы получить точное + реальное время - использовать профилировщик, такой как DotTrace http://www.jetbrains.com/profiler/ или JustTrace http://www.telerik.com/products/memory-performance-profiler.aspx
Есть ли способ вызвать сериализатор с модульным тестированием
Классы общедоступны, и вы можете создавать их экземпляры и запускать их из модульного теста. Типы BinaryMessageSerializer
а также XmlMessageSerializer
,
Если вы хотите больше поговорить об этом, я рекомендую вам повторно опубликовать в группе NSB https://groups.google.com/forum/ и включить ваши классы сообщений синхронизации, которые вызывают проблему
Крайне маловероятно, что двоичный сериализатор станет вашим узким местом для сообщений, которые не очень велики. Вы можете легко запустить тест, чтобы убедиться в этом, используя сериализатор для прямой сериализации и десериализации одного из ваших сообщений.