Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Seagull
1 / 1 / 0
Регистрация: 28.05.2009
Сообщений: 11
#1

memory leak или "ОС подчистит" (Знакомство с Modern C++ Design\Loki Александреску приветствуется) - C++

08.03.2012, 06:39. Просмотров 498. Ответов 1
Метки нет (Все метки)

Доброго времени суток, уважаемые.

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

Копаю синглтоны у Александреску. А заодно смотрю код либы Loki
http://loki-lib.cvs.sourceforge.net/....h?view=markup
там на 516-той строчке объявлена интересная стратегия контроля продолжительности жизни, NoDestroy.
Я могу быть не прав, но она же порождает утечку памяти, связанную с не удалением объекта. То есть система то конечно подчистит, но... А если там какие-то внешние ресурсы помимо памяти используются? незакрытые файлы, СУБД, ещё что нибудь?

Это сознательно игнорируется, дабы гарантировать, что синглтон с такой стратегий умрёт последним (даже не так, он будет зачищен тогда, когда приложение уже превратится в "неактивные" участки памяти, без какой либо логики и функционала, которые ОС можно просто пометить как свободные)?

Кхм. Последнюю мысль выразил малость криво, но надеюсь суть донёс.

Заранее благодарю за внимание\потраченное время.

P.S. за актуальные ссылки буду очень благодарен. Ибо несколько непонятно, как гуглить подобное.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2012, 06:39     memory leak или "ОС подчистит" (Знакомство с Modern C++ Design\Loki Александреску приветствуется)
Посмотрите здесь:

C++ Проверить, есть ли в слове приставка "пре" или "пре".
C++ О том как я сошел с ума или "expression must have integral"
Сгенерировать число "1" или "2" C++
Быстрый подсчет A^B mod C или "Алгоритм русского крестьянина" C++
C++ Не работает setlocale(LC_ALL,"Russian") или Говорим по русски
C++ Определить, находится ли координата на "ободе", или за пределами, или внутри круга (найти ошибку)
C++ Ошибка с delete [] - "CRT detected that the application wrote to memory after end of heap buffer"
Что применить "\n" или "endl"? C++
C++ Класс "Человек", информация о поле: char или int?
C++ Поставить в правильном падеже слово "пирожок" (if или switch)
Написать функцию, реализующую логическую операцию "Исключающее ИЛИ" C++
Как, каким образом "скомпилировать" код для С или С++? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
08.03.2012, 09:37     memory leak или "ОС подчистит" (Знакомство с Modern C++ Design\Loki Александреску приветствуется) #2
Очевидно, что эта стратегия не должна применяться для объектов, использующих внешние ресурсы. Смысл стратегий как раз в том, чтобы выбирать наилучшую, в зависимости от свойств объекта.
Yandex
Объявления
08.03.2012, 09:37     memory leak или "ОС подчистит" (Знакомство с Modern C++ Design\Loki Александреску приветствуется)
Ответ Создать тему
Опции темы

Текущее время: 15:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru