Текущее время: Вс, июл 20 2025, 00:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 12:23 
Специалист
Специалист

Зарегистрирован:
Пн, май 05 2008, 15:34
Сообщения: 101
Пол: Мужской
Есть самописный отчет - писали консультанты. :evil:
В процессе выполнения программа постепенно занимает память.
По окончании выполнения отчета, когда данные уже выведены на экран и программа ничего не делает, она занимает в памяти 500 Мб.
Память освобождается только после выхода из транзакции.
Где искать грабли?

_________________
Починяю примусы. Быстро, качественно, недорого - выберите два нужных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 12:36 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Где угодно. Самый прямой путь - сесть в отладчик и параллельно глядеть в SM04 на тему занимаемой памяти.
Скорее всего не сбрасываются внутренние таблицы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 13:42 
Специалист
Специалист

Зарегистрирован:
Чт, окт 26 2006, 16:44
Сообщения: 149
Откуда: Москва
Скорее всего все написано в контексте глобальных переменных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 13:56 
Специалист
Специалист

Зарегистрирован:
Пн, май 05 2008, 15:34
Сообщения: 101
Пол: Мужской
И как это лечить?

_________________
Починяю примусы. Быстро, качественно, недорого - выберите два нужных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 13:58 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Johnny написал:
И как это лечить?

Править программу, сначала найдите ошибку, у Вас таблицы не очищаются или что?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 14:03 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Johnny написал:
И как это лечить?

Перевести на локальные переменные. Что будет подразумевать неявное убиение таблиц после выхода из подпрограммы (я лично допускаю что сап может косячить и просто не освобождать эту память самостоятельно, но будем надеяться на лучшее)
Обычно на отчет нужны 1-3 большие таблицы, остальные все временные и могут быть убиты после использования.

Итого: Локальные переменные и CLEAR в каждой второй строке :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 16:22 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
lumer написал:
Где угодно. Самый прямой путь - сесть в отладчик и параллельно глядеть в SM04 на тему занимаемой памяти.
Скорее всего не сбрасываются внутренние таблицы.

Необязательно. Может быть просто набранны данные для последующих "проваливаний" и прочих детализаций (особенно если выборки хитро-нетривиальные). ALV-Деревья сами по себе могут неплохо есть.
Короче гадать можно до бесконечности "отчего и почему который год происходит подземный стук".
Автору темы можно только посоветовать восстановить/выяснить алгоритм проблемного отчёта и через динамический анализ искать виновников и оптимизировать отчёт. Ещё можно просто отказаться от использования отчёта.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 16:42 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Еще может оказаться проще переписать отчет.
Все таки консультанты - не программисты, и обычно они не задумываются о таких вещах как оптимизация и читаемость кода.
Да и программисты не все задумываются :) к сожалению

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 18:10 
Специалист
Специалист

Зарегистрирован:
Пн, май 05 2008, 15:34
Сообщения: 101
Пол: Мужской
Разобрался - нашел неочищаемые таблицы. Очистил.
Побочно решил задачу оптимизации кода - теперь отчет вместо 30 минут выполняется за 30 сек :-)

_________________
Починяю примусы. Быстро, качественно, недорого - выберите два нужных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 18:54 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Напиши гигантский JOIN - будет за 5 секунд :)

Отладить будет нереально, поэтому рекомендую добавить на селекционный экран параметр-переключатель "Быстро/правильно"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Пн, янв 12 2009, 19:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
lumer написал:
Напиши гигантский JOIN - будет за 5 секунд :)

Не будет. Будет усекновение членов базисниками после 10-го запуска в продуктиве :lol:
Если базисники мышей не ловят :wink:

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программа не освобождает память
СообщениеДобавлено: Чт, янв 15 2009, 11:26 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
lumer написал:
рекомендую добавить на селекционный экран параметр-переключатель "Быстро/правильно"

:D Сильно. Нужно взять на заметку про этот переключатель :D

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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


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

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


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

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