OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 20 Июнь, 2025 22:58

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Загруженные модули
СообщениеДобавлено: Понедельник, 08 Февраль, 2010 13:43 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Запустив в несколько разных примеров из Obx, с помощью Loaded Modules я наблюдаю неосвобождение памяти средой ББ, хотя сообщается об отсутствии зависящих от них модулей-клиентов.
Чем вызвано такое поведение? Интересно выходит, что если я запускаю много разных модулей, то в некоторый момент ОС может сообщить Блэкбоксу об отсутствии системных ресурсов.
А если память таки в некоторый момент таки освобождается, то как долго будет удерживаться память под модули, выполнивших свою функцию?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загруженные модули
СообщениеДобавлено: Понедельник, 08 Февраль, 2010 18:02 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Модули автоматически не выгружаются.

В списке показан суммарный объём
csize-, dsize-, rsize-: INTEGER
Размеры секции кода, секции данных и секции символьной информации соответственно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загруженные модули
СообщениеДобавлено: Понедельник, 08 Февраль, 2010 18:22 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
В докуметации выгрузка затронута в 4. Forms
Цитата:
4.4 Guards
...
Listing 4-13. ObxPhoneUI with LookupGuard
...
Compilation also produced a new code file on disk. However, the old version of ObxPhoneUI is still loaded in memory! In other words: once loaded, a module remains loaded ("terminate-and-stay-resident"). This is not a problem, since modules are extremely light-weight and consume little memory. However, a programmer of course must be able to unload modules without leaving the BlackBox Component Builder entirely, in order to try out a new version of a module. For this purpose, the command Dev->Unload is provided which unloads the module whose source code is currently focused.
...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загруженные модули
СообщениеДобавлено: Вторник, 09 Февраль, 2010 17:02 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Евгений Темиргалеев писал(а):
В докуметации выгрузка затронута в 4. Forms
Цитата:
4.4 Guards
...
Listing 4-13. ObxPhoneUI with LookupGuard
...
Compilation also produced a new code file on disk. However, the old version of ObxPhoneUI is still loaded in memory! In other words: once loaded, a module remains loaded ("terminate-and-stay-resident"). This is not a problem, since modules are extremely light-weight and consume little memory. However, a programmer of course must be able to unload modules without leaving the BlackBox Component Builder entirely, in order to try out a new version of a module. For this purpose, the command Dev->Unload is provided which unloads the module whose source code is currently focused.
...

Что-то мне кажется. что такая модель поведения - нерациональна. Как вариант, может. поправить Dialog.Call, чтобы умел выгружать сразу после использования ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загруженные модули
СообщениеДобавлено: Вторник, 09 Февраль, 2010 17:18 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Ну, насколько я знаю, и в винде динамические библиотеки сами не выгружаются. Тут лучше обеспечить явный механизм выгрузки - пусть, если требуется, программист сам выгружает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загруженные модули
СообщениеДобавлено: Вторник, 09 Февраль, 2010 18:05 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Роман М. писал(а):
Что-то мне кажется. что такая модель поведения - нерациональна. Как вариант, может. поправить Dialog.Call, чтобы умел выгружать сразу после использования ...
Поправить не сложно. Потом расскажете результаты эксперимента :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загруженные модули
СообщениеДобавлено: Среда, 10 Февраль, 2010 20:52 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну да, частая ситуация из нашей профессии, когда есть два пути:

1) Сначала убедить себя в том, что "правильно и красиво, чтобы было вот так". А потом, уже вбивши это в голову, кинуться героически решать все возникающие проблемы. И в итоге получить удовольствие и повод для гордости, что столько технических проблем решено, чтобы всё получилось, как задумано.

2) Заглянуть вперёд и почуять "местом, где интуиция", сколько будет технических проблем, решить пожертвовать умозрительными красивостями, чтобы этих проблем избежать и сделать тупо, просто и быстро.

Нюансы этих случаев:
1) Обычно обилие решаемых технических проблем говорит о недоупрощённости исходной постановки, а значит, когда-нибудь в будущем, чаще всего, эти неувязки вылезают боком (проблемы "отложены в ящик Пандоры").

2) Если сделать только "тупо и просто", то тоже проблем потом будет много (однако в итоге работать с таким чужим продуктом всё равно лучше, чем с категорией 1, хотя бы по причине отсутствующих фортелей). Поэтому тут обязательно нужно добавить "... и расширяемо". Если точки расширения заложены, то можно спать спокойно. Что-то поменяется - наше "тупое" решение спокойненько адаптируется к новым условиям.

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

Обычно заставить переключиться на работу по варианту 2) может очень большая перегрузка. Когда становится не до фантазий, лёжа на диване.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загруженные модули
СообщениеДобавлено: Четверг, 11 Февраль, 2010 13:40 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Илья Ермаков писал(а):
Ну да, частая ситуация из нашей профессии, когда есть два пути:

1) Сначала убедить себя в том, что "правильно и красиво, чтобы было вот так". А потом, уже вбивши это в голову, кинуться героически решать все возникающие проблемы. И в итоге получить удовольствие и повод для гордости, что столько технических проблем решено, чтобы всё получилось, как задумано.

2) Заглянуть вперёд и почуять "местом, где интуиция", сколько будет технических проблем, решить пожертвовать умозрительными красивостями, чтобы этих проблем избежать и сделать тупо, просто и быстро.

Обычно заставить переключиться на работу по варианту 2) может очень большая перегрузка. Когда становится не до фантазий, лёжа на диване.

Не... Еще большой опыт... Со временем самый тупой программер начинает понимать: чем проще, тем лучше...


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

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


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB