Russian Qt Forum
Ноябрь 23, 2024, 18:57
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
AHTUNG!!! Утечка
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: AHTUNG!!! Утечка (Прочитано 10684 раз)
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: AHTUNG!!! Утечка
«
Ответ #15 :
Июль 20, 2013, 09:42 »
Цитата: Igors от Июль 20, 2013, 09:36
На Mac OSX (linuх posix) штатная утилита Activity Monitor четко показывает что clear() все отдает. А что там делает та или иная версия Linuх - ее личное дело, повлиять на это все равно нельзя (на уровне прикладной программы). В общем, как в том анекдоте "это просто трусы линяют"
Это почему?
Есть brk/sbrk, которой вы сможете регулировать размер распределенной памяти (и под MAC OSX, скорее всего, в том числе).
Только пока вы используете стандартный менеджер кучи, вам это вряд-ли понадобиться, ибо этим занимается он.
«
Последнее редактирование: Июль 20, 2013, 10:20 от Old
»
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: AHTUNG!!! Утечка
«
Ответ #16 :
Июль 20, 2013, 10:26 »
Цитата: Igors от Июль 20, 2013, 09:36
На Mac OSX (linuх posix) штатная утилита Activity Monitor четко показывает что clear() все отдает. А что там делает та или иная версия Linuх - ее личное дело, повлиять на это все равно нельзя (на уровне прикладной программы). В общем, как в том анекдоте "это просто трусы линяют"
Версия Linux тут не причём, всё упирается в версию malloc. Везде они разные. Через LD_PRELOAD можно её легко подменить любому приложению (не статик, конечно).
Кстати, Mac OSX это надстройка над Darwin, которая к linuх не имеет никакого отношения, т.к. выросла из FreeBSD)
Записан
Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: AHTUNG!!! Утечка
«
Ответ #17 :
Июль 20, 2013, 11:18 »
Цитата: Old от Июль 20, 2013, 09:42
Есть brk/sbrk, которой вы сможете регулировать размер распределенной памяти
Насколько я помню, эти старомодные ф-ции меняют размер сегмента данных, а не кучи.
Цитата: GreatSnake от Июль 20, 2013, 10:26
Версия Linux тут не причём, всё упирается в версию malloc. Везде они разные. Через LD_PRELOAD можно её легко подменить любому приложению (не статик, конечно).
Пусть так, и что прикладная прога может реально предпринять? Изменить механизм страниц - нет. Написать свой менеджер кучи - явно неуместный велосипед. Что еще?
Цитата: GreatSnake от Июль 20, 2013, 10:26
Кстати, Mac OSX это надстройка над Darwin, которая к linuх не имеет никакого отношения, т.к. выросла из FreeBSD)
Linuх, FreeBSD, Darwin - во всяком случае одно "nix" семейство. Возвращаясь к теме - ответ тот же - оставить как есть и полагаться на ОС
Записан
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: AHTUNG!!! Утечка
«
Ответ #18 :
Июль 20, 2013, 11:20 »
Цитата: Igors от Июль 20, 2013, 11:18
Насколько я помню, эти старомодные ф-ции меняют размер сегмента данных, а не кучи.
Вы не правильно помните.
Это не две функции, один из них - системный вызов, который дергается вашим менеджером памяти прямо сейчас, когда вы читаете это сообщение.
Цитата: Igors от Июль 20, 2013, 11:18
Написать свой менеджер кучи - явно неуместный велосипед. Что еще?
Это для вас он не уместный и я даже знаю почему, это не FindReplace для std::string написать.
«
Последнее редактирование: Июль 20, 2013, 11:24 от Old
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: AHTUNG!!! Утечка
«
Ответ #19 :
Июль 20, 2013, 12:07 »
Цитата: Old от Июль 20, 2013, 11:20
Это для вас он не уместный и я даже знаю почему,
Ну так если для Вас уместный - реализуйте и выкладывайте здесь, обсудим
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: AHTUNG!!! Утечка
«
Ответ #20 :
Июль 20, 2013, 12:25 »
Цитата: Igors от Июль 20, 2013, 11:18
Пусть так, и что прикладная прога может реально предпринять? Изменить механизм страниц - нет. Написать свой менеджер кучи - явно неуместный велосипед. Что еще?
Воспользоваться сторонним МП (менеджер памяти), благо их хватает.
Цитировать
Возвращаясь к теме - ответ тот же - оставить как есть и полагаться на ОС
Опять-двадцать пять...
Причём здесь ОС, если МП по сути является частью приложения?
«
Последнее редактирование: Июль 20, 2013, 12:30 от GreatSnake
»
Записан
Qt 5.11/4.8.7 (X11/Win)
merke
Гость
Re: AHTUNG!!! Утечка
«
Ответ #21 :
Июль 20, 2013, 12:53 »
Практически тоже самое наблюдал сейчас под Windows. При старте приложухи по диспетчеру задач она заняла 8 мб памяти. После работы и очистки памяти был всплеск до 27 мб, но сбросилось до 10 мб по окончанию, получается куда то делись 2 мб памяти, неужели винда ведет себя также как Linux. Чтобы выяснить это - решил сделать следующий эксперимент: запустил первый процесс при запуске также 8 мб, после работы 10 мб. Начал запускать еще копии таких же приложух, пока не забил всю свободную оперативную память и в тот момент когда уже начал лезть в своп, начал наблюдать завораживающую взгляд картину, первый процесс стал "худеть", сначала сбросил с 10 мб до 7 мб, а потом и вовсе до 2,5 мб. Вуаля, вывод: реально мое тестовое приложение занимает в оперативе 2,5 мб все остальное место он себе натырил как бобер за щеки - на будущее, а как системе стало не хватать оперативы, она начала забирать резервированную память у процессов. Вот такая вот интересная картина получается...
«
Последнее редактирование: Июль 20, 2013, 12:55 от Александр
»
Записан
Old
Джедай : наставник для всех
Online
Сообщений: 4350
Re: AHTUNG!!! Утечка
«
Ответ #22 :
Июль 20, 2013, 13:21 »
Цитата: Igors от Июль 20, 2013, 12:07
Ну так если для Вас уместный - реализуйте и выкладывайте здесь, обсудим
А что в этом вопросе с вами можно обсудить? Вы же понятия не имеете о чем идет речь:
Цитата: Igors от Июль 20, 2013, 11:18
Насколько я помню, эти старомодные ф-ции меняют размер сегмента данных, а не кучи.
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...