|
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 29
|
||||||
Динамические массивы: выделяем и высвобождаем память25.08.2014, 19:10. Показов 2484. Ответов 21
Метки нет (Все метки)
Доброго времени суток!
Динамические массивы: выделяем и высвобождаем память. Но сложность в том, что после выполнения delete[], память полностью не высвобождается. Когда в течении процесса, приходится выделять и высвобождать довольно много раз, то память растет как снежный ком. Как возможно решить данную проблему? Для теста:
0
|
||||||
| 25.08.2014, 19:10 | |
|
Ответы с готовыми решениями:
21
Динамические массивы: очищается ли память? Структуры: зачем мы выделяем память сами, когда это можно сделать автоматически? Динамические массивы и функции. Динамические массивы. |
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||||||
| 25.08.2014, 19:47 | ||||||
|
А теперь переделай свой тест так:
Запусти прогу. А теперь закомментируй delete[] в одномерном массиве и повтори (следи за диспетчером) Добавлено через 56 секунд PS: на свой страх и риск. У меня просто комп чуток подвис, но все норм
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 29
|
|
| 25.08.2014, 20:39 [ТС] | |
|
Даже без проверки, скажу что забьет всю память, а мне нужно обратное, высвободить память полностью
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||||||
| 25.08.2014, 20:59 | ||||||
|
Странно, добавил свою функцию
Значит правильно люди говорят, особенности управления памятью со стороны системы.
0
|
||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 25.08.2014, 20:59 | ||
|
здесь возможно вторая засада сегментирование памяти примерно так есть большой кусок памяти выделили памяти 10 байт потом 20 потом 10 байт удалили потом выделили 30 байт в первый кусок, свободный где 10 байт, эти 30 не влезут значит выделится новая память а если учесть что менеджер выделяет память не побайтно а страницами, размер страницы может быть разный, зависит от системы вывод если нужно выделять/удалять нужно писать свой менеджер
1
|
||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||
| 25.08.2014, 21:59 | ||
|
0
|
||
|
Вежливость-главное оружие
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
|
|
| 25.08.2014, 22:01 | |
|
0
|
|
|
Вежливость-главное оружие
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
|
|
| 25.08.2014, 22:13 | |
|
_Ivana, если так, тогда да, должен. Скорее всего оно так и есть
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 25.08.2014, 22:33 | ||
|
0
|
||
| 25.08.2014, 23:05 | |
|
Давайте разберемся (С). Релиз же в любом случае собирается, даже для запуска отладчика? Тем более, насколько я понял, в примере из первого поста отладочная печать вызывается при выполнении экзешника, безо всякого отладчика.
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 25.08.2014, 23:42 | ||
|
все компиляторы которые мне попадались под руку имеют два режима компиляции у VC это режим Debug никакой оптимизации, включаются защитные механизмы и в программе остается отладочная информация, в частности имена функций и режим Release отладочной информации нет,защитных механизмов нет, и включена оптимизация, уровень оптимизации задается в настройках отлаживать эту программу бесполезно, код перелопачен так, что родная мама не узнает, точки останова не срабатывают, потому что этот участок кода изменен/выброшен отладка только на низкоуровневых отладчиках, как будто чужую прогу отлаживаешь
1
|
||
|
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 29
|
|||
| 26.08.2014, 00:36 [ТС] | |||
|
Добавлено через 11 минут
0
|
|||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|||||||
| 26.08.2014, 00:54 | |||||||
|
Но для полноты картины: Кликните здесь для просмотра всего текста
https://www.cyberforum.ru/atta... 1408999994
1
|
|||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||
| 26.08.2014, 01:03 | ||
|
Сборка релиз или дебаг? Если дебаг, то там еще хранится информация о выделенной памяти, для того, чтобы можно было отследить утечки. И это может "путать карты" при замере. Ссылку читал?
Для такого применения WorkingSetSize не подходит. Нужно использовать PROCESS_MEMORY_COUNTERS_EX и поле PrivateUsage. По документации это тоже самое, что PagefileUsage, но если у тебя win7, то PagefileUsage будет всегда равен нулю, поэтому смотреть надо PrivateUsage - значение показывает общее количество памяти, которое выделил менеджер памяти для данного процесса в байтах. Вот еще тут почитай. Лучше все равно сложно написать. Короче нет проблемы тут никакой.
1
|
||
|
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 29
|
||
| 26.08.2014, 01:05 [ТС] | ||
|
0
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 26.08.2014, 01:12 | ||
он вполне может не удалять при каждом delete а чохом освободить сразу кучу( в смысле много, а не в смысле организации памяти) вот ты выделяешь/ удаляешь выделяешь/ удаляешь а у него еще куча памяти он на использованную ставит метку а выделяет новую, а потом когда не хватит памяти чохом всю и очистит Выделение/ удаление дело очень дорогое и посему пытается оптимизировать да и Дебиг режим мог свое слово сказать о чем говорил DrOffset,
0
|
||
| 26.08.2014, 01:12 | |
|
Помогаю со студенческими работами здесь
20
Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) Структуры, массивы, указатели, динамические массивы структур
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройка записи справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|