Дослідження ефективності роботи серіалізаторів даних мови програмування C# за допомогою розробленого програмного продукту для тестування
DOI:
https://doi.org/10.31498/2225-6733.47.2023.299923Ключові слова:
серіалізація даних, серіалізатор, мова програмування C#, формат JSON, платформа .NETАнотація
У статті розглянуто питання використання серіалізаторів даних для реалізації проєктів, пов'язаних з обробкою великих обсягів даних, а також із підтримкою високошвидкісної передачі даних у розподілених системах. Показано, що в даному контексті вибір найбільш ефективного механізму серіалізації має критичне значення для забезпечення продуктивності та масштабованості додатків. Метою даної роботи є дослідження ефективності роботи серіалізаторів даних мови програмування С# за допомогою розробки програмного продукту для тестування серіалізаторів з використанням різних за обсягом і типом даних об’єктів. Проведено огляд наукових досліджень застосування різних форматів серіалізації даних: 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 експериментів з серіалізації об’єктів з різними типами даних. Проаналізовано витрати часу та оперативної пам’яті при серіалізації малого та великого об’єктів; об’єктів, що містять одновимірні, двовимірні та тривимірні масиви натуральних чисел, об’єкта зі складним ланцюгом спадкування класів, а також об’єкта, що містить словник. Результати експериментальних досліджень показали залежність ефективності серіалізаторів від типу та обсягу даних, які потрібно серіалізувати. Зроблено висновок, що не існує універсального серіалізатора, який буде показувати найкращі результати в усіх випадках. Надано рекомендації щодо використання різних серіалізаторів з урахуванням вимог конкретного проєкту
Посилання
Грудзинський Ю.Є., Марков Р.В. Вибір протоколу серіалізації при розробці програмного забезпечення. Вісник НТУ «ХПІ». Серія: Нові рішення в сучасних технологіях. 2016. № 12(1184). С. 13-16. DOI: https://doi.org/10.20998/2413-4295.2016.12.15.
Андрущенко Р. Порівняльний аналіз показників ефективності методів серіалізації даних у комп'ютерних мережах. Технічні науки та технології. 2019. № 1(15). С. 115-126. DOI: https://doi.org/10.25140/2411-5363-2019-1(15)-115-126.
Андрущенко Р.Б., Зайцев С.В., Солдатов А.Ю. Аналіз методів серіаліазції структурованих даних для передачі в протоколах прикладного рівня моделі OSI. Математичне моделювання в економіці. 2018. № 3. С. 52-70. URL: http://dspace.nbuv.gov.ua/handle/123456789/162043.
Попенко Д.В., Курдеча В.В. Аналіз методів серіалізації об’єктів для побудови платформи великих індустріальних даних. Перспективи телекомунікацій : збірник матеріалів Міжнародної науково-технічної конференції, м. Київ, 13-17 квіт. 2020 р. С. 1-3. URL: http://conferenc.its.kpi.ua/proc/article/view/201701.
Літвінова Н., Альперт М., Погульський А. Підвищення ефективності обміну даними сутно-стей у реляційному представленні та їх обробки. Технічні науки та технології. 2021. № 1(23). С. 81-86. DOI: https://doi.10.25140/2411-5363-2021-1(23)-81-86%20org/.
Sumaray A., Makki S.K. A comparison of data serialization formats for optimal efficiency on a mobile platform. 6th International Conference on Ubiquitous Information Management and Communication (ICUIMC'12), Kuala Lumpur, Malaysia, 20-22 February 2012. Vol. 48. Pp. 1-6. DOI: https://doi.org/10.1145/2184751.2184810.
Performance analysis of data serialization formats in m2m wireless sensor networks / F. Pacini, F.A. Aderohunmu, A. Azzarà, S. Bocchino, P. Pagano, M. Petracca. European Conference on Wireless Sensor Networks, Porto, Portugal, 9-11 February 2018. Pp. 7-8. URL: https://cister-labs.pt/docs/poster_demo_session_proceedings_of_the_12th_european_conference_on_wireless_sensor_networks_(ewsn_15)/1075/view.pdf#page=8.
PSON: A Serialization Format for IoT Sensor Networks / Luis Á., Casares P., Cuadrado-Gallego J.J., Patricio M.A. Sensors. 2021. Vol. 23(13). Pp. 1-18. DOI: https://doi.org/10.3390/s21134559.
Kazuaki M. Performance evaluation of object serialization libraries in XML, JSON and binary formats. Second International Conference on Digital Information and Communication Technology and it's Applications (DICTAP), Bangkok, Thailand, 16-18 May 2012. Pp. 177-182. DOI: https://doi.org/10.1109/DICTAP.2012.6215346.
Vanura J., Kriz P. Perfomance Evaluation of Java, JavaScript and PHP Serialization Libraries for XML, JSON and Binary Formats. Services Computing – SCC 2018: 15th International Conference, Seattle, USA, June 25-30 2018. 2018. Pp. 166-175. DOI: https://doi.org/10.1007/978-3-319-94376-3_11.
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Журнал "Вісник Приазовського державного технічного університету. Серія: Технічні науки" видається під ліцензією СС-BY (Ліцензія «Із зазначенням авторства»).
Дана ліцензія дозволяє поширювати, редагувати, поправляти і брати твір за основу для похідних навіть на комерційній основі із зазначенням авторства. Це найзручніша з усіх пропонованих ліцензій. Рекомендується для максимального поширення і використання неліцензійних матеріалів.
Автори, які публікуються в цьому журналі, погоджуються з наступними умовами:
1. Автори залишають за собою право на авторство своєї роботи та передають журналу право першої публікації цієї роботи на умовах ліцензії Creative Commons Attribution License, яка дозволяє іншим особам вільно розповсюджувати опубліковану роботу з обов'язковим посиланням на авторів оригінальної роботи та першу публікацію роботи в цьому журналі.
2. Автори мають право укладати самостійні додаткові угоди, які стосуються неексклюзивного поширення роботи в тому вигляді, в якому вона була опублікована цим журналом (наприклад, розміщувати роботу в електронному сховищі установи або публікувати у складі монографії), за умови збереження посилання на першу публікацію роботи в цьому журналі.