XDTO. XML VS JSON ВЫБИРАЕМ ЧТО ЛУЧШЕ

Привет программисты 1С. Сегодня я сделал небольшой тест чтобы выбрать лучшие методы передачи информации от 1С к 1С и сайтам.

Для проведения тестирования я написал конфигурацию 1С, которую вы можете скачать и посмотреть мою реализацию.

Скачать конфигурацию

Запишись на тренинг

НАУЧИСЬ РАБОТАТЬ С XDTO В 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 вполне легко преобразовать на стороне сайта.

Выбор инструментов за вами, и не забываем режим загрузки в транзакции, что дает сильный прирост производительности.