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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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