Имя: Пароль:
1C
1С v8
Замер использования памяти
,
0 Консультант Баранов
 
07.11.19
12:33
Есть обработка. Раньше работала нормально. Сейчас зависает.

Циклично обрабатывает объекты и на некотором зависает.

Предполагаю, что какая-то ТЗ сильно разрастается. Как лучше отследить что могло сильно разрастись?
1 Ёпрст
 
07.11.19
12:35
(0) Открыть для себя жуколов и замер производительности
2 Консультант Баранов
 
07.11.19
12:47
(1) > жуколов

Что такое?

> замер производительности

Производительность ничего не дает.

Строка с самым большим временем: Параметры.ДАтаСпецификации = ДатаСпецификации.
3 ДенисЧ
 
07.11.19
12:48
База скорее всего битай.
Сколько размер ТЗ, на которой виснет?
4 Консультант Баранов
 
07.11.19
12:51
(3) В том то и дело что не могу отловить на чем виснет.

Объекты однотипные.
5 dka80
 
07.11.19
12:54
пиши все объекты в журнал регистрации скопом
потом записывай по одному, кто последний, значит после него проблемный объект
6 H A D G E H O G s
 
07.11.19
12:55
(0) Позовите специалиста.
7 H A D G E H O G s
 
07.11.19
12:56
(1) Вот такие у нас программисты, которые даже трассировкой пользоваться не умеют.
8 sqr4
 
07.11.19
12:58
(7) да там может цикл на пару сотен тысяч повторений, такое хрен отладишь)
9 H A D G E H O G s
 
07.11.19
13:01
(8) шлепать, капать.

Включаешь трассу, запускаешь выполнение, ждешь пока зависнет, выключаешь трассу. Пробегаешься по трассированным строкам и там, где число выполнений будет на единичку меньше предыдущей строки - зависание.
10 ДенисЧ
 
07.11.19
13:01
(8) Можно в лог писать. Где закончилось, там и зависло )
11 H A D G E H O G s
 
07.11.19
13:02
Замер производительности - первейший элемент отладки чужого кода.
12 Консультант Баранов
 
07.11.19
13:09
(10) Можно взять один и тот же набор данных. В одном случае на одном объекте, в другом случае на другом.
13 Консультант Баранов
 
07.11.19
13:11
(11) Замер производительности ничего не дает. Я и так знаю что наибольшая нагрузка на разузловании.

В процессе обработки идет счетчик объектов. Зависает не на каком-то конкретном объекте, а на случайном.
14 H A D G E H O G s
 
07.11.19
13:23
(13) Вы (9) внимательно читали?
15 sqr4
 
07.11.19
14:08
(10) с логом я понял, а вот (13) тоже интересная штука, почувствовал себя тупым
16 Sapiens_bru
 
07.11.19
16:35
(0) Как вариант разбить обработку по типам объектов или по порциям и возвращаться на клиент после очередной порции. Тогда в ТЖ можно будет собрать CALL со свойствами Mem и MemoryPeak. Заодно можно LEAKS настроить.
Основная теорема систематики: Новые системы плодят новые проблемы.