|
Вопрос по замеру производительности | ☑ | ||
---|---|---|---|---|
0
Mary01
11.10.12
✎
16:11
|
Тестирую отчет, цель - разобраться, на каких именно строках отчет тормозит при работе по сети. Почему-то при каждом запуске замеритель производительности показывает разное время, отличающееся на +-3 секунды, а то и на все 20... Почему так? База файловая, подключаюсь к ней по сети (не терминал).
|
|||
1
Mafoni
11.10.12
✎
16:12
|
Дай угадаю - наверное потому что база байловая и подключаешся ты к ней по сети!
|
|||
2
Mary01
11.10.12
✎
16:14
|
(1) - и что? зависит от скорости сети в каждый момент времени что ли? "Скорости сети" - ну и придумала же фразу. Ну вы поняли о чем я )
|
|||
3
Живой Ископаемый
11.10.12
✎
16:14
|
потому что в разные моменты нагрузка на железо файл-сервера и клиента разная.
|
|||
4
Живой Ископаемый
11.10.12
✎
16:16
|
2(2) Почему только сети? От очереди на чтение к диску файл-сервера, от загруженности его проца, от загруженности клиента.
|
|||
5
Mary01
11.10.12
✎
16:24
|
Ясно, значит, не от 1С зависит. А как же тогда оценить объективно? Вычислять среднее по всем замерам, что ли?
|
|||
6
Лефмихалыч
11.10.12
✎
16:26
|
(5) так скорость ОБЪЕКТИВНО разная в разное время
|
|||
7
Mary01
11.10.12
✎
16:27
|
(6) как я тогда пойму, какая строка кода самая тормознутая?
|
|||
8
Лефмихалыч
11.10.12
✎
16:28
|
(7) запусти на локальной копии, в которой ни кого нет на машине, которую кроме тебя ни кто не трогает
|
|||
9
Mary01
11.10.12
✎
16:32
|
(8) вот как раз несколько минут назад запускала на локальной, 3 раза, результат - разный!!! Правда, на этой машине многопользовательский ключ 1С стоит, это могло повлиять при условии, что к базам на моем компе кроме меня никто не подключается?
|
|||
10
ДенисЧ
11.10.12
✎
16:33
|
(7) а прОценты для лохов?
|
|||
11
DrShad
11.10.12
✎
16:34
|
(7) смотри не на общее время, а на самый большой процент времени выполнения среди строк
|
|||
12
Mafoni
11.10.12
✎
16:34
|
(9) а ты хочеш каждый раз видеть один и тот же результат (речь идет про время выполнения отчета )?
|
|||
13
DrShad
11.10.12
✎
16:34
|
+(10) я же как понимаю тебе нужно отчет оптимизировать, а не найти самого быстрого клиента в офисе
|
|||
14
H A D G E H O G s
11.10.12
✎
16:35
|
(9) Забей.
|
|||
15
H A D G E H O G s
11.10.12
✎
16:35
|
Ты 2-ой и последующие разы уже на "горячее" запускаешь.
|
|||
16
H A D G E H O G s
11.10.12
✎
16:35
|
Что под SQL, что под файловой.
|
|||
17
Mary01
11.10.12
✎
16:36
|
(10),(11) так в том-то и дело, что одна и та же строка в разное время может набирать разный процент.
|
|||
18
Mary01
11.10.12
✎
16:37
|
(15) то есть, с предыдущего раза какие-то данные попадают? как такое возможно?
|
|||
19
Mary01
11.10.12
✎
16:37
|
(16) обе файловые
|
|||
20
H A D G E H O G s
11.10.12
✎
16:37
|
У меня дома под Windows 7 системный кэш через пару дней занимает 13 гиг и всякие УПП летают на ней. Вообще все открывается без обращений к диску практически.
|
|||
21
DrShad
11.10.12
✎
16:37
|
(18) про кеширование данных слышала?
|
|||
22
H A D G E H O G s
11.10.12
✎
16:38
|
(18) У тебя Винда в оперативку кэширует базу. Если оперативки мало, кэш освобождается под другие процессы, иногда частично, иногда полностью. Вот и разные результаты.
|
|||
23
H A D G E H O G s
11.10.12
✎
16:39
|
(18) Забей. Отлаживай несколько самых тяжелых строк
|
|||
24
H A D G E H O G s
11.10.12
✎
16:40
|
Или давай коннект, я потешу свое любопытство.
|
|||
25
Mary01
11.10.12
✎
16:43
|
(23) Видимо это и придется делать. все равно самые тяжелые в первой пятерке, хоть и меняются местами между собой, они одни и те же.
|
|||
26
Живой Ископаемый
11.10.12
✎
16:51
|
2(25) Запускай отчет за какое-то длительное время, все что можно поместится в кэш, потом выполняй его за более коротки промежутки. Но права если в запрос добавляешь новые объекты, то каждый раз как ты это делаешь, то первый раз тоже из замеров можно смело выкидывать.
|
|||
27
Mary01
11.10.12
✎
17:00
|
Кстати, про кэш. Я так понимаю, что если данные первый раз берутся не из кэша, то это происходит дольше, чем все последующие разы, а последующие, должны работать быстрее и быстрее, хоть на немного (т.к. они уже записались в кэш при первом формировании отчете). Так у меня наоборот, при каждом последующем разе длительность увеличивалась стабильно на 0,4 секунды (я сравнивала самой трудоемкой строке)! Парадокс?
|
|||
28
hhhh
11.10.12
✎
17:03
|
(27) надо с перезагрузкой компьютера делать. Загружаешь компьютер, делаешь замер, потом перезагружаешь, делаешь второй замер. И так далее.
|
|||
29
Mary01
11.10.12
✎
17:04
|
(28) шутим )))
|
|||
30
H A D G E H O G s
11.10.12
✎
17:05
|
(29) Нет.
|
|||
31
Mary01
11.10.12
✎
17:47
|
Наибольшее время занимают те строки, в которых мы получаем реквизиты документа, например:
ДокОсн = Док.Счет.Ссылка; ДатаОплаты = ДокОсн.ДатаОплаты; ДатаДоставки = ДокОсн.ДатаДоставки; ... Стр.ДатаДоставки = ДатаДоставки; ... ДатаОплатыПоДоговору = Док.Дата; В чем тогда должна заключаться оптимизация? Отказаться от этих строк нельзя - эти данные нужны для расчетов. "Док" - этот документ получаем из выборки запроса. Может быть, тогда и всё остальное прописать в запросе, а потом получать из выборки? |
|||
32
Fragster
гуру
11.10.12
✎
17:47
|
(31) получить 1 раз запросом все нужные данные
|
|||
33
Kashemir
11.10.12
✎
17:48
|
(31) Тащи значения реквизитов прямо в запросе выборки, чтобы каждый раз к серверу не обращаться
|
|||
34
Mary01
11.10.12
✎
17:52
|
всем спасибо, перетащу в запрос. так, стоп. а разве суммарное время всех обращений к серверу не равно одному большому обращению к серверу в запросе?
|
|||
35
Mary01
11.10.12
✎
17:54
|
каким образом Миста определяет, какие строки являются кодом? Я их никак не выделяла, а они вон красиво в рамочку обвелись?
|
|||
36
Mary01
11.10.12
✎
17:55
|
почему все затихли? 6 часов - домой пора?
|
|||
37
Kashemir
11.10.12
✎
17:56
|
(34) Скажем так, само по себе обращение по времени незначительно, а вот подготовка к обращению и возврат результата занимаем много времени.
(35) Скрип ищет ключевые слова конструкций языка и пытается их выделить. |
|||
38
timurhv
11.10.12
✎
17:56
|
(34) если было бы равно, тогда запросы циклом писать можно было бы)))
|
|||
39
Mary01
12.10.12
✎
15:38
|
Перетащила я эти переменные в запрос, стало за 15 секунд формироваться (в исходном отчете - за 19), это у меня. У бухгалтеров еще не тестировала, но думаю, что там разница поболее будет.
Теперь другие строки формируются долго, например, эта: ЭлементРезультата=ПроцессорКомпоновки.Следующий(); |
|||
40
Fragster
гуру
12.10.12
✎
15:39
|
выводи не итерационно, а все сразу в макет
|
|||
41
Mary01
12.10.12
✎
17:54
|
(40) это как - сразу?
Сейчас так: Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); |
|||
42
Fragster
гуру
12.10.12
✎
18:16
|
ПроцессорВывода.Вывести() вместо всего цикла
|
|||
43
H A D G E H O G s
12.10.12
✎
18:44
|
Девочка учитца.
Похвально. |
|||
44
mehfk
12.10.12
✎
18:54
|
Mary0, в Омском времени живем?
|
|||
45
Адимр
12.10.12
✎
19:30
|
(20) Улет вообщ да? Ты еще ссд диск поставь и от ощущения скорости работы в 1с будешь кончать.
|
|||
46
vmv
12.10.12
✎
19:42
|
(31) в запрос загоните получение вложенных реквизиотов ссылок или в копоновку, да и вообще если в этом отчете вложенные запросы - то замуж рано, учиться, учиться и учиться как завещал Чак Норрис)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |