
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.06.2007, 16:46
|
|||
|---|---|---|---|
|
|||
Как узнать свободна ли область памяти? |
|||
|
#18+
Ну так вот, можно ли и как узнать свободна ли область памяти? Например если я хочу увеличить размер массива не перемещая его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.06.2007, 17:14
|
|||
|---|---|---|---|
Как узнать свободна ли область памяти? |
|||
|
#18+
а если не свободна, увеличивать не будешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.06.2007, 18:10
|
|||
|---|---|---|---|
Как узнать свободна ли область памяти? |
|||
|
#18+
Для систем реального времени рекомендуется заранее выделить массив нужного размера или озаботится пулом объектов в достаточном количестве. Если система таковой не является тогда ИМХО не стоит заморачиватся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.06.2007, 18:17
|
|||
|---|---|---|---|
Как узнать свободна ли область памяти? |
|||
|
#18+
nrmBeginner wrote: > Ну так вот, можно ли и как узнать свободна ли область памяти? Например > если я хочу увеличить размер массива не перемещая его. Помнится, в вин максимальный объем памяти, которую можно выделить был где-то около (объем_оперативки+объем_файла_подкачки) и только после этого система сообщала что "оперативка закончилась". Сомневаюсь, что массив будет такого размера. А вообще GlobalMemoryStatus под Windows. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2007, 08:29
|
|||
|---|---|---|---|
|
|||
Как узнать свободна ли область памяти? |
|||
|
#18+
maytonДля систем реального времени рекомендуется заранее выделить массив нужного размера или озаботится пулом объектов в достаточном количестве. Если система таковой не является тогда ИМХО не стоит заморачиватся. А что такое пул? И почему не стоит заморачиваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2007, 09:02
|
|||
|---|---|---|---|
|
|||
Как узнать свободна ли область памяти? |
|||
|
#18+
maXmoа если не свободна, увеличивать не будешь? Умный да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2007, 14:51
|
|||
|---|---|---|---|
Как узнать свободна ли область памяти? |
|||
|
#18+
nrmBeginnerА что такое пул? И почему не стоит заморачиваться? Ваша затея с увеличением памяти - это попытка пойти в обход стандартного Memory Management API. А в связи с этим возникает вопрос - зачем? Есть функция realloc(..) которая выполняет эту задачу. В скобках замечу, что мне неизвестен её алгоритм. Возможно это более сложный вариан malloc с проверками на допустимость операции растягивания экстента памяти или с move-ом в новое место. В любом случае, эта задача сегодня решена и не представляет интереса для исследования. Если вы хотите получить динамический массив с константным временем отклика при растягивании - резервируйте место заранее. В конце-то концов для любой задачи можно задать какие-то разумные рамки использования ресурсов. Поэтому особо заморачиватся с "подглядыванием" вперёд не стоит. Пул - еще один паттерн, предназначеный для оптимизации использования памяти. Про него рассказывать не буду ибо нечего. Почитайте в Интернете. Там полно статей и примеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.06.2007, 16:53
|
|||
|---|---|---|---|
Как узнать свободна ли область памяти? |
|||
|
#18+
mayton wrote: > Есть функция realloc(..) которая выполняет эту задачу. В скобках замечу, > что мне неизвестен её алгоритм. Вообще можно посмотреть MSVCROOT/VC/crt/src/realloc.c (если, конечно, используется MSVC, а не билдер, например). Код довольно запутанный, в некоторых случаях происходит ресайз, в некоторых случаях выделяется новый блок и данный копируются, в некоторых вызывается HeapReAlloc и т.д... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2028700]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 505ms |

| 0 / 0 |
