|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
||||||
Долгое высвобождение памяти19.02.2015, 22:55. Показов 3254. Ответов 47
Метки нет (Все метки)
Здравствуйте. Возможно, такой вопрос уже встречался, но ответа мне найти не удалось.
Намахал template List.
Конечно, не так часто будут выделяться/освобождаться гигабайты памяти, но и, в случае необходимости, выгружать списки с данными из памяти по нескольку часов не будет радовать. Возможно как-то ускорить этот процесс и с чем связана такая длительность?
0
|
||||||
| 19.02.2015, 22:55 | |
|
Ответы с готовыми решениями:
47
Высвобождение динамической памяти Корректное высвобождение памяти в list Высвобождение памяти для 3 измерения массива |
|
Ушел с форума
|
|
| 19.02.2015, 23:32 | |
|
Функция clock возвращает количество "тиков", а не миллисекунд, так
что данные вычисления неверны. А количество тиков в секунду определяется константой CLOCKS_PER_SEC. Добавлено через 16 минут Кстати, на моем железе (Core i5-2500) полиморфное удаление миллиона объектов из вектора (базовый класс - пустая структура с массивом на 200 байт и виртуальным деструктором) занимает чуть меньше 200 миллисекунд.
0
|
|
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
||||||
| 19.02.2015, 23:41 [ТС] | ||||||
|
Убежденный, ваше утверждение, что данные вычисления неверны, неверно. А за просветление спасибо (более верная запись plog("< %p: %f s\n", this, (clock()-t1)/CLOCKS_PER_SEC )
.
0
|
||||||
|
Ушел с форума
|
|||||||||
| 20.02.2015, 08:38 | |||||||||
|
Eraston, Ваше утверждение, что мое утверждение, что данные вычисления неверны, неверно - неверно.
![]()
2
|
|||||||||
|
|
||
| 20.02.2015, 09:31 | ||
|
Eraston, а что ты хотел? У тебя списочная можель памяти
И да в DEBUG-е есть песочница для процесса, там всё очень меделнно аллокается и деаллокается(скомпилируй релиз и запусти exe без студии, ну и замеряй время) Добавлено через 3 минуты
0
|
||
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
||||
| 22.02.2015, 17:16 [ТС] | ||||
|
Не по теме: Убежденный, Ваше утверждение, что мое утверждение, что ваше утверждение, что данные вычисления неверны, неверно - неверно, неверно, ибо данные вычисления относятся к конкретному случаю, а не являются общим случаем.
0
|
||||
|
|
||
| 22.02.2015, 17:42 | ||
|
Не по теме:
Добавлено через 7 минут https://ru.wikipedia.org/wiki/Менеджер_памяти
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 22.02.2015, 18:21 | ||
|
Массив освобождается сразу же целиком, например. Операция освобождения ещё медленнее, чем операция выделения. А ручки тянутся к операционной системе. Можно 1 раз освободить весь блок целиком. Можно 1000 раз освобождать кусочек за кусочком. Можно 1 раз нарваться на медленную операцию. Можно 1000 раз нарываться на медленную операцию. А кроме того, очередь очереди рознь. В обычном листе создаваемые объекты разрабрасываются по всей памяти как придется. Например, один объект находится на одной странице памяти, а другой - на другой. Системе приходится постоянно прыгать туда-сюда, и то и дело подтягивая то одну страницу памяти, то другую. То ли дело, если бы объекты находились в одном непрерывном куске памяти: вероятность кэш-миссов была бы значительно меньше. В общем, я хз, почему у вас так медленно освобождается память. Я с такими проблемами не сталкивался. Однако пулы памяти, которые используют оптимальные стратегии выделения и размещения объектов по принципу "кэш-френдли" действительно имеют смысл. Если у вас затык на работе с памятью, то есть смысл рассмотреть вариант использования пулов памяти. зы: на самом деле я почти уверен, что затык где-то в другом месте.
0
|
||
|
|
||
| 22.02.2015, 19:14 | ||
|
http://www.cplusplus.com/refer... /?kw=clock
Добавлено через 8 минут
0
|
||
| 22.02.2015, 20:07 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 22.02.2015, 20:48 | |||
|
может быть ТС просто не в курсе насчет виртуальных деструкторов.
0
|
|||
|
|
|||
| 22.02.2015, 20:56 | |||
|
Добавлено через 1 минуту Хотя непонятно зачем тут "что-то виртуальное" если используешь шаблоны.
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 22.02.2015, 21:00 | |||||||
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 22.02.2015, 21:37 | ||
|
Если по потрохам стандартных контейнеров полазить - там тоже можно что-то подобное найти. А связанно это с тем, что в шаблоны стремятся выносить лишь необходимый для типо-безопасности минимум. А все остальное реализуют нешаблонные вспомогательные механизмы, что позволяет свести к минимуму затраты на инстанцирование шаблонов, и размер итогового кода.
0
|
||
|
|
||||
| 22.02.2015, 21:47 | ||||
|
Добавлено через 56 секунд Добавлено через 3 минуты В любом случае это не в тему.
0
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||
| 22.02.2015, 22:21 | ||||||||||||||
Класс они использовали по видимому, потому что им показалось удобным напихать туда всяких своих методов. Хотел ещё глянуть msvc2013, но уж как то больно муторно. Студия почему то не дает навигацию по своим потрохам. Остальное - не шаблонное вспомогательное. Типобезопасность по прежнему обеспечивается времени компиляции. Добавлено через 4 минуты вот нода для std::map, так же не шаблонная:
В общем то, нечему удивляться. Ведь такие вещи делают люди грамотные. Они не станут зазря плодить шаблонокод во все поля.
0
|
||||||||||||||
|
|
|||||||||||
| 22.02.2015, 22:54 | |||||||||||
|
MSVC2010
std::list
std::map (xtree)
0
|
|||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 22.02.2015, 23:05 | |||||||
|
А кроме того: не совсем понятно, зачем мелкомягкие запихали структуру в шаблон. потому что по факту они используют её, как не шаблонную. обратите внимание:
с таким же успехом она могла бы быть вынесена наружу, потому что не содержит зависимых от параметров шаблона типов.
0
|
|||||||
| 22.02.2015, 23:05 | |
|
Помогаю со студенческими работами здесь
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/
Слева синяя линия -. . .
|