Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Найти утечку памяти. Как? / 9 сообщений из 9, страница 1 из 1
25.11.2008, 10:55
    #35673384
u78
u78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
Падает с ошибкой STORE.

Есть цикл по объектам, несколько вложенных вызовов методов объектов, каждый объект имеет коллекции ListOfObj, цикл по коллекциям. Все методы PROCEDUREBLOCK.

Есть ли какая то системная рутина которая может показать, куда у меня уходит вся память процесса?

Кто нибудь сталкивался с такой задачей - найти утечку памяти? Как решали?
...
Рейтинг: 0 / 0
25.11.2008, 11:05
    #35673431
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
u78Кто нибудь сталкивался с такой задачей - найти утечку памяти?
Мы с МСМа... Привыкшие работать в 30-30 КБ... Нам такое неведомо.
...
Рейтинг: 0 / 0
25.11.2008, 11:50
    #35673617
Alexey Maslov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
До 48Мб память процесса увеличили?
Попытаться отследить утечку можно так: установить точки останова в критических (на Ваш взгляд) точках и смотреть в отладчике значение системной переменной $S.
...
Рейтинг: 0 / 0
25.11.2008, 12:30
    #35673801
AlexKB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
А лучше писать в Лог глобал значение памяти и сопутствующую информацию в каждой точке, индексируя по $ZH.
...
Рейтинг: 0 / 0
26.11.2008, 03:53
    #35675377
=Dimon=
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
u78Падает с ошибкой STORE.

Есть цикл по объектам, несколько вложенных вызовов методов объектов, каждый объект имеет коллекции ListOfObj, цикл по коллекциям. Все методы PROCEDUREBLOCK.

Есть ли какая то системная рутина которая может показать, куда у меня уходит вся память процесса?

Кто нибудь сталкивался с такой задачей - найти утечку памяти? Как решали?
У меня была аналогичная проблема, писал об этом раньше. У меня было 4 списка (ListOfObjects) на памяти по 7000 объектов в каждом. Падало при переборе элементов. Проблема исчезла, когда с каждым списком стал работать отдельно и увеличил количество выделяемой памяти на процесс.
...
Рейтинг: 0 / 0
26.11.2008, 05:24
    #35675395
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
d $system.OBJ.ShowObjects()
...
Рейтинг: 0 / 0
26.11.2008, 08:43
    #35675480
=Dimon=
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
u78Падает с ошибкой STORE.

Есть цикл по объектам, несколько вложенных вызовов методов объектов, каждый объект имеет коллекции ListOfObj, цикл по коллекциям. Все методы PROCEDUREBLOCK.

Есть ли какая то системная рутина которая может показать, куда у меня уходит вся память процесса?

Кто нибудь сталкивался с такой задачей - найти утечку памяти? Как решали?
Либо зайдите в Портал управления, выберите Ваш процесс и посмотрите какие переменные и объекты он использует.
...
Рейтинг: 0 / 0
26.11.2008, 08:51
    #35675488
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
А там разве показывает объекты?
...
Рейтинг: 0 / 0
26.11.2008, 15:46
    #35677012
u78
u78
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти утечку памяти. Как?
Всем спасибо.

Итог таков:

Можно посмотреть какие открыты объекты
do $system.OBJ.ShowObjects()

Можно посмотреть на объект
do $system.OBJ.Dump(ObjectVariable)

Можно посмотреть текущую свободную память процесса
write $Storage

К сожалению нельзя "взвесить" отдельный объект.

Методом думания нашёл самый толстый объект - им оказался %Library.ArrayOfDataTypes, создал новый класс в котором повторил все Get и Insert (и прочие геттеры и сеттеры), только с хранением в process private global.
Всё заработало.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Найти утечку памяти. Как? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]