Дослідження ефективності роботи серіалізаторів даних мови програмування C# за допомогою розробленого програмного продукту для тестування - Балалаєва , О.Ю.; Марченко , І.Ф.; Коротенко , Г.М.; Бешта , Д.О.; Пікуз , А.К. (Вісник Приазовського Державного Технічного Університету. Серія: Технічні науки, 2023)
У статті розглянуто питання використання серіалізаторів даних для реалізації проєктів, пов'язаних з обробкою великих обсягів даних, а також із підтримкою високошвидкісної передачі даних у розподілених системах. Показано, що в даному контексті вибір найбільш ефективного механізму серіалізації має критичне значення для забезпечення продуктивності та масштабованості додатків. Метою даної роботи є дослідження ефективності роботи серіалізаторів даних мови програмування С# за допомогою розробки програмного продукту для тестування серіалізаторів з використанням різних за обсягом і типом даних об’єктів. Проведено огляд наукових досліджень застосування різних форматів серіалізації даних: XML, JSON, BSON, MessagePack, Smile, Protocol Buffers, Flat Buffers, Apache Thrift. Зроблено висновок, що найбільш популярними на сьогодні є формати XML та JSON, виконано їх порівняльний аналіз. Обґрунтовано доцільність використання JSON-формату серіалізації, що обумовлено його безпечністю у порівнянні з бінарним форматом, меншим розміром у порівнянні з XML-форматом, а також підтримкою більшістю засобів розробки програмних продуктів. Обрано платформу .NET, яка надає стандартні інструменти для JSON-серіалізації мови програмування С#, а саме: System.Runtime.Serialize.Json та System.Text.Json, які постачаються за замовчанням. Проаналізовано найбільш популярні програмні рішень для серіалізації об’єктів C#, показано доцільність тестування таких серіалізаторів, як Jil, Json.NET, Utf8Json, SpanJson та стандартних серіалізаторів з метою виявлення переваг та недоліків їхнього використання для реалізації конкретних задач та проєктів. Для створення програми-тестувальника обрано бібліотеку мови програмування C# BenchmarkDotNet. Зазначено, що даний фреймворк платформи .NET дозволяє перетворювати методи на тести та створювати тестування ефективності завдяки потужному статистичному механізму. Наведено діаграму класів та діаграму компонентів розробленого програмного забезпечення. Проведено дослідження 5 серіалізаторів даних, які включали виконання 7 експериментів з серіалізації об’єктів з різними типами даних. Проаналізовано витрати часу та оперативної пам’яті при серіалізації малого та великого об’єктів; об’єктів, що містять одновимірні, двовимірні та тривимірні масиви натуральних чисел, об’єкта зі складним ланцюгом спадкування класів, а також об’єкта, що містить словник. Результати експериментальних досліджень показали залежність ефективності серіалізаторів від типу та обсягу даних, які потрібно серіалізувати. Зроблено висновок, що не існує універсального серіалізатора, який буде показувати найкращі результати в усіх випадках. Надано рекомендації щодо використання різних серіалізаторів з урахуванням вимог конкретного проєкту