powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как узнать свободна ли область памяти?
8 сообщений из 8, страница 1 из 1
Как узнать свободна ли область памяти?
    #34586560
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так вот, можно ли и как узнать свободна ли область памяти? Например если я хочу увеличить размер массива не перемещая его.
...
Рейтинг: 0 / 0
Как узнать свободна ли область памяти?
    #34586608
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если не свободна, увеличивать не будешь?
...
Рейтинг: 0 / 0
Как узнать свободна ли область памяти?
    #34586721
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для систем реального времени рекомендуется заранее выделить массив нужного размера или озаботится пулом объектов в достаточном количестве. Если система таковой не является тогда ИМХО не стоит заморачиватся.
...
Рейтинг: 0 / 0
Как узнать свободна ли область памяти?
    #34586731
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginner wrote:

> Ну так вот, можно ли и как узнать свободна ли область памяти? Например
> если я хочу увеличить размер массива не перемещая его.
Помнится, в вин максимальный объем памяти,
которую можно выделить был где-то около (объем_оперативки+объем_файла_подкачки) и
только после этого система сообщала что "оперативка закончилась".
Сомневаюсь, что массив будет такого размера.

А вообще GlobalMemoryStatus под Windows.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как узнать свободна ли область памяти?
    #34587017
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДля систем реального времени рекомендуется заранее выделить массив нужного размера или озаботится пулом объектов в достаточном количестве. Если система таковой не является тогда ИМХО не стоит заморачиватся.
А что такое пул? И почему не стоит заморачиваться?
...
Рейтинг: 0 / 0
Как узнать свободна ли область памяти?
    #34587025
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoа если не свободна, увеличивать не будешь?
Умный да?
...
Рейтинг: 0 / 0
Как узнать свободна ли область памяти?
    #34587167
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginnerА что такое пул? И почему не стоит заморачиваться?

Ваша затея с увеличением памяти - это попытка пойти в обход стандартного Memory Management API. А в связи с этим возникает вопрос - зачем? Есть функция realloc(..) которая выполняет эту задачу. В скобках замечу, что мне неизвестен её алгоритм. Возможно это более сложный вариан malloc с проверками на допустимость операции растягивания экстента памяти или с move-ом в новое место. В любом случае, эта задача сегодня решена и не представляет интереса для исследования.

Если вы хотите получить динамический массив с константным временем отклика при растягивании - резервируйте место заранее. В конце-то концов для любой задачи можно задать какие-то разумные рамки использования ресурсов. Поэтому особо заморачиватся с "подглядыванием" вперёд не стоит.

Пул - еще один паттерн, предназначеный для оптимизации использования памяти. Про него рассказывать не буду ибо нечего. Почитайте в Интернете. Там полно статей и примеров.
...
Рейтинг: 0 / 0
Как узнать свободна ли область памяти?
    #34587279
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton wrote:

> Есть функция realloc(..) которая выполняет эту задачу. В скобках замечу,
> что мне неизвестен её алгоритм.
Вообще можно посмотреть MSVCROOT/VC/crt/src/realloc.c (если, конечно,
используется MSVC, а не билдер, например). Код довольно запутанный, в
некоторых случаях происходит ресайз, в некоторых случаях выделяется новый
блок и данный копируются, в некоторых вызывается HeapReAlloc и т.д...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как узнать свободна ли область памяти?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]