XDTO. XML VS JSON ВЫБИРАЕМ ЧТО ЛУЧШЕ
- Опубликовано Илья Низамов
- Разделы Blog
- Дата 03.07.2020
- Комментарии Нет комментариев
Привет программисты 1С. Сегодня я сделал небольшой тест чтобы выбрать лучшие методы передачи информации от 1С к 1С и сайтам.
Для проведения тестирования я написал конфигурацию 1С, которую вы можете скачать и посмотреть мою реализацию.
В конфигурации есть справочник номенклатура. Вот его мы и будем выгружать. Есть кнопка генерации номенклатуры, количество позиций вы можете задать в коде.
Перед каждым тестом я рекомендую перезапускать конфигурацию. Результаты всех тестов в миллисекундах.
Выгрузка загрузка JSON
После подготовки базы. Вы можете посмотреть скорость выгрузки просто в JSON. С помощью ЗаписьJSON и ЗаписатьJSON. Тут правда надо понимать, что данные для такой выгрузки надо предварительно корректно сформировать.
У меня на 10 000 позиций номенклатуры получился вот такой результат:
Выборка = 808
Формирование JSON = 41
Теперь сразу загрузим данный файл обратно.
Десериализация JSON = 53
Запись JSON = 13 401
Можно ускорить загрузку, загружая в транзакции.
Десериализация JSON = 53
Запись JSON = 7 171
ФабрикаXDTO. Выгрузка загрузка XML
Теперь попробуем выгрузить тот же справочник с помощью ФабрикаXDTO. Используя данный метод, нам приходится тратить лишнее время на получение объектов из базы. Получается запрос в цикле. Но мы получаем очень простой и удобный код.
Результаты выгрузки в XML:
Выборка = 3 314
Формирование XDTO (XML) = 288
Загрузим файл обратно.
Десериализация XDTO (XML) = 3 187
Запись XDTO (XML) = 51 830
Ускорим загрузку в транзакции.
Десериализация XDTO (XML) = 3 238
Запись XDTO (XML) = 6 108
Результат в транзакции просто отличный.
СериализаторXDTO. Выгрузка загрузка JSON
Тоже самое, что и с фабрикой. Но мы получаем простой код, формат JSON и привязку к типам. Результаты выгрузки можете видеть ниже.
Выборка = 3 595
Формирование XDTO (JSON) = 97
И обратная загрузка.
Десериализация XDTO (JSON) = 3 158
Запись XDTO (JSON) = 50 986
И в транзакции.
Десериализация XDTO (JSON) = 3 069
Запись XDTO (JSON) = 6 231
Вывод
Самый быстрый режим оказался JSON, как по выгрузке, так и по загрузке. Его удобно применять при обмене с сайтом. Но подготовка данных и их обратная загрузка значительно увеличивает код.
Сериализация и десериализация объектов в XML и JSON в принципе сопоставимы. Удобно выгружать и загружать данные. Внутри файлов содержится информация о типах. И если при загрузке данных особой разницы не видно, то при сериализации в JSON мы видим кратное ускорение, плюс этот JSON вполне легко преобразовать на стороне сайта.
Выбор инструментов за вами, и не забываем режим загрузки в транзакции, что дает сильный прирост производительности.