![]() |
|
УФ - почему такая разница во времени исполнения одинакового кода? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
13.02.15
✎
09:06
|
http://www.dropmocks.com/mIHNvM
первые две строки - добавляю поле формы в группу последняя строка - в ту же группу добавляю поле формы 0,9 сек и 0,1 сек - почему такая разница? и почему так много времени уходит на код типа: ГруппаПоказателя = Элементы["_Группа" + ИмяЭлемента]; |
|||
1
r2d24
13.02.15
✎
09:25
|
У тебя все три реквизита разные, возможно в типе реквизита разница. А если бы были строки одинаковые, я бы подумал, что КЭШ способствует.
|
|||
2
RomaH
naïve
13.02.15
✎
09:32
|
похоже что кэш
при добалении элемента кэш "Элементы" сбрасывается перед первыми двумя строками есть добавление элементов а для последней строки - похоже где-то идет чтение "Элементы[имяЭлемента]" тогда встает вопрос - а как добавить элементы без цикла т.е. без сброса кэш? |
|||
3
DrZombi
гуру
13.02.15
✎
09:33
|
Покажи Код
|
|||
4
DrZombi
гуру
13.02.15
✎
09:33
|
И причем тут КЭШ?
|
|||
5
hhhh
13.02.15
✎
09:39
|
(2) ну там количество повторов 97, а для второго кода 96. Смоделируй нам ситуацию, чтобы одинаково было 97. Или 96. Тогда мы сравним.
|
|||
6
НЕА123
13.02.15
✎
09:39
|
Тип("полеФормы")
|
|||
7
RomaH
naïve
13.02.15
✎
09:50
|
ГруппаФормы = Элементы[ИмяЭлемента]; //долго
Элементы.Добавить(); //быстро Элементы.Добавить(); //долго ГруппаФормы = Элементы[ИмяЭлемента]; //долго Элементы.Добавить(); //быстро |
|||
8
RomaH
naïve
13.02.15
✎
09:50
|
ГруппаФормы = Элементы[ИмяЭлемента]; //долго
Элементы.Добавить(); //быстро Элементы.Добавить(); //долго ГруппаФормы = Элементы[ИмяЭлемента]; //долго ГруппаФормы = Элементы[ИмяЭлемента1]; //быстро Элементы.Добавить(); //быстро |
|||
9
DrZombi
гуру
13.02.15
✎
09:56
|
(8) Выложи обработку, коль так трудно показать полный текст твоего коду. :)
|
|||
10
hhhh
13.02.15
✎
09:57
|
(8) а выяснили почему там 97 и 96? Разные цифры. В этом же суть.
|
|||
11
RomaH
naïve
13.02.15
✎
10:16
|
(10) ага, один лишний вызов съедает 0,7 скунды - а все остальные 96 так же за 0,1 проходят?
щас попробую обработкой воссоздать |
|||
12
RomaH
naïve
13.02.15
✎
11:15
|
&НаСервере
Процедура СоздатьЭлементыФормы() МассивРеквизитов = Новый Массив; Для Ш = 1 По 100 Цикл РеквизитЗначения = Новый РеквизитФормы("_Реквизит_" + Ш,Новый ОписаниеТипов("Строка"),,,Истина); МассивРеквизитов.Добавить(РеквизитЗначения); КонецЦикла; ИзменитьРеквизиты(МассивРеквизитов); Для Ш = 0 По 24 Цикл //Циклами по 4 элемента будем добавлять ГруппаПоказателя1 = Элементы.Добавить("_Группа" + Ш,Тип("ГруппаФормы")); ГруппаПоказателя1.Вид = ВидГруппыФормы.ОбычнаяГруппа; ГруппаПоказателя1.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная; ГруппаПоказателя1.ОтображатьЗаголовок = Ложь; ГруппаПоказателя1.Отображение = ОтображениеОбычнойГруппы.Нет; ГруппаПоказателя = Элементы["_Группа" + Ш]; Элемент = Элементы.Добавить("_Код" + ((Ш*4)+1),Тип("ПолеФормы"),ГруппаПоказателя); Элемент.Вид = ВидПоляФормы.ПолеВвода;//0,001 сек Элемент.ПутьКДанным = "_Реквизит_" + ((Ш*4)+1); Элемент = Элементы.Добавить("_Код" + ((Ш*4)+2),Тип("ПолеФормы"),ГруппаПоказателя); Элемент.Вид = ВидПоляФормы.ПолеВвода;//0,006 сек Элемент.ПутьКДанным = "_Реквизит_" + ((Ш*4)+2); ГруппаПоказателя = Элементы["_Группа" + Ш]; Элемент = Элементы.Добавить("_Код" + ((Ш*4)+3),Тип("ПолеФормы"),ГруппаПоказателя); Элемент.Вид = ВидПоляФормы.ПолеВвода;//0,001 сек Элемент.ПутьКДанным = "_Реквизит_" + ((Ш*4)+3); Элемент = Элементы.Добавить("_Код" + ((Ш*4)+4),Тип("ПолеФормы"),ГруппаПоказателя); Элемент.Вид = ВидПоляФормы.ПолеВвода;//0,006 сек Элемент.ПутьКДанным = "_Реквизит_" + ((Ш*4)+4); КонецЦикла КонецПроцедуры |
|||
13
RomaH
naïve
13.02.15
✎
11:21
|
если убрать вот этот код:
ГруппаПоказателя = Элементы["_Группа" + Ш]; то все Элементы.Добавить("_Код" + ((Ш*4)+ занимаю 0,006 сек на тестовой обработке все быстро а вот на "рабочем" документе 0,006 превращается в 0,8 сек и таких вызовов несколько |
|||
14
RomaH
naïve
13.02.15
✎
11:38
|
вопрос ка добится того, что бы все элементы создавались за 0,0004 сек . а не за 0,0024
|
|||
15
DrZombi
гуру
13.02.15
✎
11:59
|
(14) Откажись от 98 или около (не суть) Элементов :)
|
|||
16
DrZombi
гуру
13.02.15
✎
11:59
|
+(15) Зачем там столько элементов?
|
|||
17
RomaH
naïve
13.02.15
✎
12:42
|
(16) что-то вроде анкетирования
состав формы зависит от анкеты и типа вопросов |
|||
18
DrZombi
гуру
13.02.15
✎
13:21
|
(17) И почему просто не использовать Таблицу?
|
|||
19
RomaH
naïve
13.02.15
✎
13:23
|
(18) что есть "Таблица"?
|
|||
20
RomaH
naïve
13.02.15
✎
13:25
|
(18) потому-что, вопрос - как быстро создавать элементы
а не как сделать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |