System vs Newtonsoft



Уже известный факт: коробочный сериализатор платформы .NET обзавёлся поддержкой полиморфной сериализации и десериализации.



Но насколько он быстрее по сравнению с Newtonsoft? Я задался этим вопросом и провёл бенчмарк. Сравнил работу с одним экземпляром и списком из 30000 различных объектов, каждый из которых являлся экземпляром некоторого производного класса.



Конфигурация сериализаторов следующая:



▪️camelCase

▪️pretty форматирование

▪️включение метаинформации о типе (поскольку в System её отключить нельзя, то в Newtonsoft нужно включить)

▪️конвертация enum в string



Результат на фото: платформенное решение быстрее стороннего в ~4 раза в сериализации и в ~3.5 раза в десериализации.