ShowT9() за 90мс - как то многовато

tormozit Закрыто

Иногда как то многовато времени занимает отображение списка Т9 (даже без подавления штатного списка).
С 50мс я смирился. Но тратить 90мс на показ списка из 11 элементов - как то многовато.
Эта длительность плавает в диапазоне 60-90мс.
Создал эту заявку на случай, если произошло не намеренное возвращение какого то кода к старому варианту.

Ссылка скрыта

Комментарии

bolsun
#1, ред. 08 декабря 2023 18:16

ПередПолучениемДанных не посчитал 33мс,
итого 50-60мс моих, на инициализацию, показ окна, фильтр, вывод, подсветку вхождений, расчет позиции окна, обработку текущих нажатий.


bolsun
#2, ред. 08 декабря 2023 18:24

Вот что происходит в ПередПолучениемДанных 33 мс, это интересно. Там всего то нужно проверить инициализированы и разрешены ли ИР для этого конфгуратора. А занимает 50% от времени расчета ПриПолученииДанных


bolsun
#3, 08 декабря 2023 18:27

А вообще, в этом таймере еще не учитывается время реакции (от начала вызова подсказки до начала инициализации окна подсказки), которое в 6-й версии вообще уменьшилось на 200-300мс по сравнению с 5-й. Так что заниматься выкраиванием десятка мс, смысла на данный момент нет.


bolsun
#4, ред. 08 декабря 2023 18:33

Но ПередПолучениемДанных стоит посмотреть подробнее, почему так долго. Кстати я потестировал у себя с ИР Адаптер, занимает он 9мс и 95 мс ПриПолученииДанных, и 50 мс уже моих.


tormozit
#5, ред. 08 декабря 2023 18:40

В ПередПолучениемДанных по сути только это выполняется

	База = СтрокаСоединенияБазыКонфигуратора();
 Значение = ТурбоКонф.ВосстановитьЗначение(База + Ключ, Шифрование);
	Сообщить("ВосстановитьЗначениеБазы. База=" + База + ";" + Ключ + "=" + ?(Шифрование, "***", Значение));
	
Функция СтрокаСоединенияБазыКонфигуратора(Знач СПользователем = Истина)
	ИнфоПроцесса = ИнфоПроцесса();
	Если ИнфоПроцесса.Режим = "Серверный" Тогда
		СтрокаСоединения = СтрШаблон("Srvr=""%1"";Ref=""%2"";", ИнфоПроцесса.Сервер, ИнфоПроцесса.БазаДанных);
	Иначе
		СтрокаСоединения = СтрШаблон("File=""%1"";", ИнфоПроцесса.Каталог);
	КонецЕсли;
	Если СПользователем Тогда
		СтрокаСоединения = СтрокаСоединения + СтрШаблон("Usr=""%1"";", ИнфоПроцесса.Пользователь);
	КонецЕсли;
	Сообщить("Строка соединения базы конфигуратора = " + СтрокаСоединения);
	Возврат СтрокаСоединения;
КонецФункции

Функция ИнфоПроцесса()
	ИнфоПроцесса = Конфигуратор.ПараметрыИнформационнойБазы;
	Возврат ИнфоПроцесса;
КонецФункции

Тут негде тратить 33мс


bolsun
#6, 10 декабря 2023 15:01

bolsun изменил статус на Закрыто


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера