Текущее время: Пн, авг 04 2025, 10:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Удаления обьектов
СообщениеДобавлено: Вт, фев 05 2008, 20:10 
Ассистент
Ассистент

Зарегистрирован:
Ср, ноя 07 2007, 13:05
Сообщения: 30
У меня вопрос такой: Если был создан обьект (Create object) и записан в внутреннюю таблицу и после обработки всего стирается (Free) таблица, остаются обьекты в памяти или их надо Free Object стирать? Я просто заметил, что хотя я после обработки все таблицы стираю, в памяти всеровно что-то остаётся. Я уже всё просмотрел в коде и не могу найти кто может оставаться в памяти. Единнственное предположение, что это обьекты.

Кстати можно как-то посмотреть, какой элемент сколько памяти во время работы программы, потребляет.

Заранее всех благадарю за помошь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удаления обьектов
СообщениеДобавлено: Вт, фев 05 2008, 20:54 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
007matrix написал(а):
У меня вопрос такой: Если был создан обьект (Create object) и записан в внутреннюю таблицу и после обработки всего стирается (Free) таблица, остаются обьекты в памяти или их надо Free Object стирать? Я просто заметил, что хотя я после обработки все таблицы стираю, в памяти всеровно что-то остаётся. Я уже всё просмотрел в коде и не могу найти кто может оставаться в памяти. Единнственное предположение, что это обьекты.

Насколько я представляю - объекты существуют пока на них есть ссылки. Отвечает за это сборщик мусора, который этим занимается переодически.

SAP написал(а):
Object Lifetime

An object exists for as long as it is being used in the program. An object is in use by a program for as long as at least one reference points to it, or at least one method of the object is registered as an event handler.

As soon as there are no more references to an object, and so long as none of its methods are registered as event handlers, it is deleted by the automatic memory management (garbage collection). The ID of the object then becomes free, and can be used by a new object.

Оператор Free не уничтожает непосредственно объект, а только очищает ссылку.
Форма FREE OBJECT используется только для OLE2-объектов
Цитата:
Кстати можно как-то посмотреть, какой элемент сколько памяти во время работы программы, потребляет.

В отладчике есть пункт меню, который показывает разные типы памяти и её содержимое.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, фев 05 2008, 21:12 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Если у объекта существует деструктор - то лучше его применить (типа вызвать метод FREE или FINALIZE)... Особенно если этот объект - грид или текстедитор, очень они любят на экранах оставаться в рамках одной сессии.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удаления обьектов
СообщениеДобавлено: Ср, фев 06 2008, 09:12 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
007matrix написал(а):
Кстати можно как-то посмотреть, какой элемент сколько памяти во время работы программы, потребляет.


Запускайте ФМ по ссылке до и после создания объекта
Размер памяти, используемой приложением.

_________________
С уважением, VGA
Мой блог


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 14:20 
Ассистент
Ассистент

Зарегистрирован:
Ср, ноя 07 2007, 13:05
Сообщения: 30
спасибо за помошь, но к сожелению у меня ниего с этим обьектами
не получаеется.
Придётся, если до завтра не решу проблему, переводить весь код с обектов на нормальные структуры, таблицы.

Уже всё <я не знать русский языка>, но проблемы с памятью не изменились.
Мне всё таки кажется, что обьекты остаются где-то в памяти, а мусоршик их удаляет только после окончания программы.

Кстати можно как-то этого мусоршика (Garbage Collector) самому упровелять, типа сказать в коди, чтобы он всё отчистил?

Может кто-нибудь знает, как всё таки можно стирать обьекты самому и не ждать мусоршика.

Ну очень не хочется всё переписывать


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 14:28 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
О каких объектах идет речь в принципе?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 14:31 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
сам не пробовал, возможно поможет
call method CL_ABAP_MEMORY_UTILITIES=>DO_GARBAGE_COLLECTION.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 14:43 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
007matrix написал(а):
спасибо за помошь, но к сожелению у меня ниего с этим обьектами
не получаеется.

Что имено не получается?
Возможена-ли ситуация циклических ссылок?
Цитата:

Придётся, если до завтра не решу проблему, переводить весь код с обектов на нормальные структуры, таблицы.

Уже всё <я не знать русский языка>, но проблемы с памятью не изменились.
Мне всё таки кажется, что обьекты остаются где-то в памяти, а

Так кажеся или остаются?
Цитата:
мусоршик их удаляет только после окончания программы.

Кстати можно как-то этого мусоршика (Garbage Collector) самому упровелять, типа сказать в коди, чтобы он всё отчистил?
Можно, но не рекомендуется. Какжется в какой-то из справок есть упоминание ФМ, запускающго GC.
Цитата:
Может кто-нибудь знает, как всё таки можно стирать обьекты самому и не ждать мусоршика.
Нельзя.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 14:56 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 16:08
Сообщения: 352
Пол: Мужской
Цитата:
Может кто-нибудь знает, как всё таки можно стирать обьекты самому и не ждать мусоршика.


привыкай. Я после DELPHI не могу привыкнуть что C# тоже не удаляет объекты. Только мусоршик. Оказалось что ABAP тоже так работает..

Времена когда, что создал сам и удаляй, прошли.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 15:50 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Mike1 написал:
сам не пробовал, возможно поможет
call method CL_ABAP_MEMORY_UTILITIES=>DO_GARBAGE_COLLECTION.
написал тестовую программку - работает (проверял по CL_ABAP_MEMORY_UTILITIES=>GET_TOTAL_USED_SIZE).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 15:51 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Mike1 написал:
сам не пробовал, возможно поможет
call method CL_ABAP_MEMORY_UTILITIES=>DO_GARBAGE_COLLECTION.
написал тестовую программку - работает (проверял по CL_ABAP_MEMORY_UTILITIES=>GET_TOTAL_USED_SIZE).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 15:51 
Ассистент
Ассистент

Зарегистрирован:
Ср, ноя 07 2007, 13:05
Сообщения: 30
John Doe написал:
О каких объектах идет речь в принципе?


самые обыкновенные обьекты, в которых стоят только пару атрибутов.
Просто мне показалось, что лучше начинать сразу с обьектами, а ни изобретать разные структуры.
Короче говоря хотел как лучше, а получилось как всегда.

Раз нельзя самому обьекты стирать, начну уже прямо сейчас "возврашение в нормальный мир" без обьектов и им поддобных.

Цитата:
сам не пробовал, возможно поможет
call method CL_ABAP_MEMORY_UTILITIES=>DO_GARBAGE_COLLECTION.

это моя последняя надежда, сейчас посмотрю. Потом расскажу, что из этого вышла


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 16:09 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Code:
Раз нельзя самому обьекты стирать, начну уже прямо сейчас "возврашение в нормальный мир" без обьектов и им поддобных.

А мужики то и не знали... :)
Java, C# (впрочем правильнее .Net framework), куча не столь широко распиаренных языков используют сборщик мусора. Который, вроде, неплохо справляется со своими обязанностями.
Просто вместо контроля за объектами надо контролировать ссылки. Парадигма от этого сильно не поменялась. Все что можно делать локальным - делаем таковым и не знаем проблем (ИМХО, с конца 60х общепринятый подход ;)).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 16:20 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
007matrix написал(а):
Раз нельзя самому обьекты стирать


Официальную документацию в студию? Слабо верится.
Типичная причина утекания памяти - повторное использование указателя без предварительного уничтожения объекта.

Раз уж в апаперских классах нет деструктора, создавайте собственный метод для уничтожения внутренних структур в экземпляре класса, перед удалением самого экземпляра класса.

_________________
С уважением, VGA
Мой блог


Последний раз редактировалось vga Ср, фев 06 2008, 16:24, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, фев 06 2008, 16:23 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
007matrix написал(а):
самые обыкновенные обьекты, в которых стоят только пару атрибутов.
Просто мне показалось, что лучше начинать сразу с обьектами, а ни изобретать разные структуры.
Короче говоря хотел как лучше, а получилось как всегда.

Вы всегда так фантастически проблемы детализируете или просто решили всех "заинтриговать"? Если второе, то я заинтригован.
А теперь: Что такое "самые обыкновенные объекты", какого они типа (на основе чего они создаются), как их создаете? Желательно кусочек кода чтоб всем понятнее стало...


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

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


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

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


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

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