Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  06:22[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 1536—1527 | 1526—1517 | 1516—1507 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 474


№ 1526   09-01-2007 03:43 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1521« (Владимир Лось)
___________________________

Ответ на »сообщение 1519« (pepper)
___________________________
Число подозрительных мест невелико, если ловить утечки не таскменеджером, а чем-то более специализированным.
А может - ну его на фиг? :о) Может, лучше причину проблемы изничтожить, в смысле "профилактика лучше и дешевле, чем лечение"?


Речь шла не о выборе GC vs ручное управление памятью. Наивно полагать, что использование упоминавшийся реализации GC для C/C++ решит все проблемы с утечками, тем более в таких запущенных случаях как у вас в конторе.


GC не решает всех проблем с памятью, тем более в C/C++. Возьми хотя бы факт существования слабых (weak) указателей в языках с GC.
Не просветите?... У меня великое подозрение, что вы приведёте достаточно частную "реализацию" в системе, которая пыжится "скрестить ужа с ежом"... :о)


Это достаточно общая проблема для языков с GC. Первый раз я о ней услышал применительно к Java и ее GUI. Сейчас точно не помню что именно там было, но GC отказывался подчищать обработчики менюшек или чего-то в этом роде. Причем речь не шла о банальных циклических ссылках (с ними GC справляется на ура).



Очередь сообщений с их последующей обработкой без задействия GC.
Заранее нужное количество выделяете и используете кольцевой буфер.


Изначально вопрос возник как попытка выяснить преимущество для этой задачи оберона. Кольцевой буфер можно и на C наколбасить.


Си на Юникс-подобных ОСях: хотите меньше неприятностей с утечками памяти и висячими указателями? - не используйте *alloc/free... :о))) Тем более, что сама идеология Юникса построения многоэтапной обработки этому способствует... :о)


Когда речь идет о C++, независимо от используемой ОС, все проблемы с ручным управлением памятью решаются через смарт-поинтеры. Соответственно ни о каких  free/delete речь не идет.


№ 1525   09-01-2007 03:26 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1520« (Илья Ермаков)
___________________________

Ответ на »сообщение 1519« (pepper)
___________________________
Можно использовать буфер с явным возвратом в него ненужных более объектов-сообщений.Объекты будут динамические, но нагрузки на GC не будет.


Можно. А в чем тогда бужет преимущество оберона?


№ 1524   09-01-2007 03:25 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1518« (Cardinal)
___________________________

Ответ на »сообщение 1461« (pepper)
___________________________
И как организовать банальную очередь из таких записей?
Может так:

  TYPE
      Node = POINTER TO RECORD
        key: INTEGER;
        next: Node
      END;

    PROCEDURE AddNode (VAR list: Node; node: Node);
    BEGIN
      ...
    END AddNode;


И чего с этим делать? Как это будет работать без NEW?


№ 1523   09-01-2007 02:35 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1522« (Илья Ермаков)
___________________________
А можно не в PDF а в чем-то что можно не только печатать но и почитать, например на покете?


№ 1522   09-01-2007 01:46 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1520« (Илья Ермаков)
___________________________
Выполняю обещание, данное несколько дней назад - рассказать об архитектурных приемах, используемых в Оберонах.
См. http://blackbox.metasystems.ru/index.php?option=com_content&task=blogcategory&id=1&Itemid=5
статья "Некоторые идеи архитектуры Оберон-систем".


№ 1521   08-01-2007 08:42 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1519« (pepper)
___________________________
Число подозрительных мест невелико, если ловить утечки не таскменеджером, а чем-то более специализированным.
А может - ну его на фиг? :о) Может, лучше причину проблемы изничтожить, в смысле "профилактика лучше и дешевле, чем лечение"?

Если все настолько запущенно, что непонятно отчего такое происходит, то такой код или переписывается нафиг или рефакторится.
Это, когда это позволительно делать. А если как в моём случае: "ты должен всё это исправить, но ничего не переделывай!"... :о)

GC не решает всех проблем с памятью, тем более в C/C++. Возьми хотя бы факт существования слабых (weak) указателей в языках с GC.
Не просветите?... У меня великое подозрение, что вы приведёте достаточно частную "реализацию" в системе, которая пыжится "скрестить ужа с ежом"... :о)

Очередь сообщений с их последующей обработкой без задействия GC.
Заранее нужное количество выделяете и используете кольцевой буфер.
Тем более, что обычно сама природа организации обмена через "сообщения" подразумевает не сильную нагрузку объёмами данных на элементы сообщений...

Хотите в качестве бреда?: один из выводов, сделанных мной из опыта работы с Си на Юникс-подобных ОСях: хотите меньше неприятностей с утечками памяти и висячими указателями? - не используйте *alloc/free... :о))) Тем более, что сама идеология Юникса построения многоэтапной обработки этому способствует... :о)


№ 1520   08-01-2007 08:27 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1519« (pepper)
___________________________
Можно использовать буфер с явным возвратом в него ненужных более объектов-сообщений.Объекты будут динамические, но нагрузки на GC не будет.


№ 1519   08-01-2007 08:06 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1517« (AVC)
___________________________

И каким числом подозрительных мест Вы намерены ограничиться?


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


А если у Вас не утечка памяти, а напротив -- "виснут" указатели?


Если все настолько запущенно, что непонятно отчего такое происходит, то такой код или переписывается нафиг или рефакторится.


Вообще-то, "последним писком" (в поисках утечек памяти в программах на Си/Си++) вроде бы считается использование боэмовского (консервативного) сборщика мусора:
http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html
И почему бы тогда просто не пользоваться языком со сборкой мусора (в основном прецизной)?


GC не решает всех проблем с памятью, тем более в C/C++. Возьми хотя бы факт существования слабых (weak) указателей в языках с GC.



И как организовать банальную очередь из таких записей?
Я не совсем понял: Вы хотите организовать очередь из стековых объектов?


Очередь сообщений с их последующей обработкой без задействия GC.


№ 1518   07-01-2007 16:01 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1461« (pepper)
___________________________
И как организовать банальную очередь из таких записей?
Может так:


  TYPE
      Node = POINTER TO RECORD
        key: INTEGER;
        next: Node
      END;

    PROCEDURE AddNode (VAR list: Node; node: Node);
    BEGIN
      ...
    END AddNode;



№ 1517   07-01-2007 14:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1461« (pepper)
___________________________


>>Вам когда-нибудь приходилось вылавливать утечки памяти в чужом Си++ном коде?

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


Какой дивный оптимизм! :)
И каким числом подозрительных мест Вы намерены ограничиться?
А если у Вас не утечка памяти, а напротив -- "виснут" указатели?
Вообще-то, "последним писком" (в поисках утечек памяти в программах на Си/Си++) вроде бы считается использование боэмовского (консервативного) сборщика мусора:
http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html
И почему бы тогда просто не пользоваться языком со сборкой мусора (в основном прецизной)?


>>Однако, слово "статические" здесь и правда неудачно.
Речь идет о том, что записи могут быть не только "динамическими" (в куче).
В частности, могут быть "автоматическими" (т.е. располагаться на стеке).

И как организовать банальную очередь из таких записей?


Я не совсем понял: Вы хотите организовать очередь из стековых объектов?
(Видимо, речь идет о реализации не с помощью массива, а с помощью указателей?)
 AVC


<<<... | 1536—1527 | 1526—1517 | 1516—1507 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 474


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования