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

start [/forum/topic.php?fid=57&fpage=290&tid=2028700]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 327ms |

| 0 / 0 |
