Оптимизация кода XML через XDTO в табличную часть #810608


#0 by jedbez
Есть получаемый XML определенного формата, в XDTO описан. После происходит преобразование параметров в значения справочников по уеазанным кодам. Ну и непосредственно сама процедура, определяет какой тип имеет поле в строке табличной части и ищет в справочнике Всё работает нормально, но записей очень много, и вот понимаю что можно както оптимизировать, ускорить разбор или ускорить преобразование строки XML с кодами справочников в значения полей строки табличной части докумета
#1 by France
"..много.." - а насколько много??
#2 by Armando
Покажи снимок экрана с результатами замера производительности в отладчике.
#3 by jedbez
Во, замером производительности научился пользоваться... [img]] Много это около 221-370 сек. разбор 6700 строк
#4 by jedbez
#5 by jedbez
Не видно первых строк Вот 2,3 строка из функции "ЗаполнитьПоле" - всё сжирают
#6 by Armando
Вот с этим и надо что-то делать. НайтиПоКоду это обращение к СУБД. По возможности коды надо предварительно закэшировать, например, в соответствие.
#7 by тарам пам пам
сначала считывай в массив все коды сразу, потом вытаскивай из БД одним запросом все нужные ссылки, потом подставляй уже в таблицу - будет быстро.
#8 by kiruha
Не пиши так никогда
#9 by jedbez
В табличной строке порядка 40 ссылок на различные справочники, хэшировать все справочники, это же не логично, хотя можно попробовать. А запросом не быстрее будит, чем НайтиПоКоду? Хм... надо попробовать Мысль такая, для каждого поля сделать соответствие в которое поместить Структуру (Ключ, ссылка) возможных значений поля. И при заполнении строки таблицы, дёргать от туда ссылки на справочники, согласно кода из XML. Критикуя - предлагай, иначе остаётся вопрос - Чо? (Выражающий не аргументированный позыв к агрессивному диалогу ни о чём, троль?)
#10 by RomaH
как вариант кеширования - общий модуль с повторным использованием но кещирование поможет если много совпадающих кодов
#11 by тарам пам пам
"А запросом не быстрее будит" - запросом в цикле будет ровно то же самое, что и НайтиПоКоду в цикле, потому что НайтиПоКоду и есть запрос. Поэтому для ускорения нужно делать меньше запросов => читаешь сначала все коды (либо, если будут проблемы с недостатком памяти при загрузке очень большого файла, часть кодов; 6700 строк - маленький файл, если что) и ищешь сразу все ссылки.
#12 by kiruha
>>ритикуя - предлагай, иначе остаётся вопрос - Чо? (Выражающий не аргументированный позыв к агрессивному диалогу ни о чём, троль?) Раз не было - код настолько плох , что даже нет смысла объяснять - на курсы вам надо , а не темы писать
#13 by jedbez
В чём код плох? "Нет смысла объяснять", а вы попробуйте. Млин, всё равно не пойму я вас, будьте добры спуститесь с небес до моего уровня и ткните презренного меня в чем плохость кода, или это просто вброс для накручивания счетчика сообщений?
#14 by NWsFF
Забей для 1С хороший код :)
#15 by h-sp
вот это что-то дикость какая-то напишите
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С