Утечка памяти при вызове отчета через браузер.
Здравствуйте, имеется сервер 1С (платформа 8.3.15.1534) и самописная конфа. На апаче развернут веб-сервер. Есть один отчет (по уровню нагрузки на скуль/1С сервера по 10-балльной шкале - макс 3) который выводит 1,5-2 млн строк.
Когда запускают через (обычный) клиент - отрабтывает за милисекунды ну и вывод минут 10, памяти жрет 3-4 гига; а когда в браузере то в худшем зависнет и сервер положит (память rphost под 200гигов, скуль в 50), в лучшем - выведет за 1,5-2 часа.
Проблема в веб-клиенте, веб-сервере или 1С сервере?
Когда запускают через (обычный) клиент - отрабтывает за милисекунды ну и вывод минут 10, памяти жрет 3-4 гига; а когда в браузере то в худшем зависнет и сервер положит (память rphost под 200гигов, скуль в 50), в лучшем - выведет за 1,5-2 часа.
Проблема в веб-клиенте, веб-сервере или 1С сервере?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(14) зачем вам вывод номенклатуры? Достаточно только итога по каждому магазину.
А если надо анализировать, в отбор магазин и выводи. 150 магазинов я точно уверен никто не анализирует за раз.
Это сколько нужно времени чтобы это визуально только просмотреть? А если тебе нужно это в бигдата, то нафиг на экран выводить выводи сразу в нужном формате в файл.
А если надо анализировать, в отбор магазин и выводи. 150 магазинов я точно уверен никто не анализирует за раз.
Это сколько нужно времени чтобы это визуально только просмотреть? А если тебе нужно это в бигдата, то нафиг на экран выводить выводи сразу в нужном формате в файл.
Вы в отчете случайно не используете свой макет табличного документа? Если в таком макете сделать в каком-нибудь месте объединение ячеек, то на больших объемах данных (сотни тысяч строк) вывод начинает дико тормозить даже на обычном клиенте. Избавившись от объединения вывод с 10 минут сократился до нескольких секунд.
(3)нет, макет СКД, а вот формирование, компоновка, вывод свой:
Процедура ПриКомпоновкеРезультата(Результат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТЗ = ПолучитьИзУТ();
Если ТЗ=Неопределено Тогда
Сообщить("Нет данных!");
Возврат;
КонецЕсли;
ВнешнийНаборДанных = Новый Структура("ТЗ", ТЗ);
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот