Текущее время: Вт, июл 29 2025, 16:41

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 17:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 №1: а чуть-чуть поподробнее можно? что значат эти строки?
Хорошо, написано memory(sum). Но как-то не складывается эта сумма из приведенных строк.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 17:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Кодер написал(а):
в se30 показывается объем памяти, который был использован, но не показывается объем памяти осовобожденной.

1.se30 не предназначен для просмотра освобожденной памяти.
Это транзакция анализа программы , а не runtime-мониторинга.
2.Зачем знать объем освобожденной памяти? После окончания выполнения программы она все равно освободится.

Как узнать текущий объем, занятый выполняемой в данный момент программой, написал sibrin.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 17:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Скорее всего должен интересовать следующая строка в SM50
Цитата:
Memory (max. transaction) 22472.091 (Bytes)

Посмотри параметры системы в транзакции RZ11:
Code:
o  ztta/roll_area            (1.000.000 - 15.000.000)               
       Classic roll area per user and internal mode                 
       usual amount of roll area per user and internal mode         
o  ztta/roll_extension       (10.000.000 - 500.000.000)             
       Amount of memory per user in extended memory (EM)             
o  abap/heap_area_total      (100.000.000 - 1.500.000.000)           
       Amount of memory (malloc) for all users of an application     
       server. If several background processes are running on       
       one server, temporary bottlenecks may occur.                 
       Of course, the amount of memory (in bytes) must also be       
       available on the machine (main memory or file system swap).   
       Caution:                                                     
       The operating system must be set up so that there is also     
       enough memory for each process. Usually, the maximum address 
       space is too small.                                           
       Ask your hardware manufacturer or your competence center     
       about this.                                                   
       In this case, consult your hardware vendor                   
abap/heap_area_dia:        (10.000.000 - 1.000.000.000)             
       Restriction of memory allocated to the heap with malloc       
       for each dialog process.                                     
Parameters for background processes:                                 
abap/heap_area_nondia:        (10.000.000 - 1.000.000.000)           
       Restriction of memory allocated to the heap with malloc       
       for each background process.                                 
Other memory-relevant parameters are:                               
em/initial_size_MB:         (35-1200)                               
       Extended memory area from which all users of an               
       application server can satisfy their memory requirement.     

и ответь на вопрос: удастся ли тебе превысить текущие значения в своей программе?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 17:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Цитата:
1.se30 не предназначен для просмотра освобожденной памяти.
Это транзакция анализа программы , а не runtime-мониторинга.

Похоже коллега - математик? Дать ответ который был обозначен в условии задачи, но не является ее решением. Я и говорил что интерисует в определенный момент выполнения программы.

Цитата:
2.Зачем знать объем освобожденной памяти? После окончания выполнения программы она все равно освободится.

Есть подозрение(из разряда паранойи), что в программе объявлена таблица, она заполнилась данными на этапе сбора, потом ее по идее должны были сделать free, но могли и забыть почистить. Т.е. суть задачи: как отловить memory leak?

Варинат sibrina и №1 интересны, но это что-то другое.. не оттуда похоже рою... Но зато они подтолкнули на другие мысли в части той же проблемы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 18:13 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Кодер написал(а):
Т.е. суть задачи: как отловить memory leak?

Удав написал(а):
После окончания выполнения программы она все равно освободится.

Извините, к-какой такой memory leak? :shock: В чем он проявляется?
Это же ABAP, а не C...

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 18:19 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 Удав: Ну С не С... А вот ситуация: есть ФМ, в нем таблица объявленная в глобальной части. Есть программа, которая использует данные ФМ. Работает по принципу: собрали данные, показали юзеру, он кнопарь надавил - мы что-то сделали. Данные собирает как раз тот ФМ. Неаккуратно написанный ФМ - и таблица на выходе не очистилась. Память отожрана и не освобождена.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 30 2006, 18:39 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
так при завершении вызывающей программы эта память все равно будет освобождена. :)
Описанный Вами случай - это как раз поле для анализа с помощью SE30 - посмотрел, в каком программном объекте больше всего памяти занималось - этот объект и смотреть.
Опять же, если функциональная группа содержит накапливаемую таблицу - то это не всегда плохо. Например, если производится кэширование данных для уменьшения чтения из БД.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 01 2006, 09:19 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
2 Удав:
[quote]
так при завершении вызывающей программы эта память все равно будет освобождена.
[/quote]
Я же описал ситуацию: программа не завершена, она ждет реакции пользователя, память все еще занята. В том-то и фигня. Вариант с se30 не проходит, я же говорю, она покажет фактически пиковое значение(ну не показывает она освобожденную память. как мы это обсудили пару мессаг назад).

Да, накапливаемая таблица не всегда зло, но как и в старой рекламе "не все ёгурты одинаково полезны". В некоторых случаях хотелось бы ее зачистить. А чтобы знать что забыли зачистить - хотелось бы найти инструмент для этого.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 01 2006, 09:35 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Сколько программа занимает памяти в режиме ожидания - можно посмотреть через SM04.
После этого уменьшаешь параметр abap/heap_area_dia до значения, меньшего, чем размер занимаемой памяти, запускаешь по новой проблемную транзакцию и анализаруешь дамп :)
Правда такой способ подходит только для тех программ, которые действительно занимают много памяти.
Плюс-минус мегабайт здесь большой роли не играет.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 14 2006, 01:14 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
ну почисти эту таблицу если она глобальная в группе функций - "Dirty Assign" - и делов то


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 14 2006, 01:24 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
к тому же есть ФМ чтобы снимок памяти сделать - но если нет инспектора памяти - как его промотреть :)))))))))))) и есть ли этот ФМ В 4.0 ? Можно попробовать транзакцию взять в 4.7 и > и посмотреть программу запускаемую - может она в ранней версии к другой транзакции прикручена


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 14 2006, 01:44 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
Еще идея - можно попробовать выгрузить инспекто памяти из более поздней версии в транспорт и залить в вашу систему - и если он не использует много групп функций имеющихся ( которые изменились в следующих версиях ) - или вообще использует новые только - то может прокатить - если все их тоже :))))))))))) выгрузить


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 14 2006, 01:48 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
Еще идея - можно попробовать выгрузить инспекто памяти из более поздней версии в транспорт и залить в вашу систему - и если он не использует много групп функций имеющихся ( которые изменились в следующих версиях ) - или вообще использует новые только - то может прокатить - если все их тоже :))))))))))) выгрузить


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 14 2006, 10:29 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Есть только одно но, если это все реализовано только с помощью абапа, скорее всего используются "ядерные" функции.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB