Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Массив. Где он? [D6, Win95/98, Win2k]


Dmk ©   (2002-08-03 01:10:00) 

Есть массив.
Определен как var xBuffer:array[0..1024*512-1] of bytes;

Значит ли это, что массив постоянно расположен именно в оперативной памяти?


Dmk   (2002-08-03 20:17:00) [1]

Попробую ...


Юрий Зотов   (2002-08-03 10:35:00) [2]

1. IMHO, если к массиву или какой-то его части происходят частые обращения, то высока вероятность того, что этот массив (или эта его часть) действительно будет все время (или почти все время) находиться в оперативной памяти. Поскольку swappping страниц Windows кэширует.

2. > через него идет запись на диск.

Запись на диск - штука сама по себе достаточно медленная (и тоже кэшируемая, если не запрещать при открытии файла). Поэтому вряд ли будет так уж критично, где именно находится массив. И поэтому я бы не стал лочить память, не погоняв сначала программу и не убедившись в том, что это действительно стоит делать.

3. Даже если программа действительно работает слишком медленно, то стоит поискать, почему это так (прогнать профайлером, например). Вполне вероятно, что главная проблема окажется совсем в другом месте.


ACR   (2002-08-03 04:29:00) [3]

во еще есть функция SetProcessWorkingSetSize
тока в NT и в Win32s работает :)


ACR   (2002-08-03 04:02:00) [4]

Память при выделении можно паметить как неперемещаемую тобишь залокать ее если оперативки хватит то все впарядке.. ты не один ее локаешь многие ее хатят залокать... :) к томуже если даже аперативки хватает может ненайтись непрерывного участка нежного размера....


Dmk   (2002-08-03 03:53:00) [5]

Эх. А мне не все равно. Нужно, чтобы он всегда был в оперативной памяти. Может выделить память по другому? Дело в том, что через него идет запись на диск. А если он на диске ... представляете себе какой swap идет! С диска в память и обратно. А обработка идет побайтно!!!


Юрий Зотов   (2002-08-03 02:32:00) [6]

Это значит, что массив постоянно расположен в памяти. Но не обязательно именно в оперативной.

Впрочем, программе это все равно.


Yaro   (2002-08-03 02:27:00) [7]

Если тебя интерисует обращение к массиву через АSМ, то смело можешь работать так же как и в ДОСе, а где он на самом деле находится - фиг его знает. :( Для тебя это абсолютно прозрачно..


ACR   (2002-08-03 02:03:00) [8]

в видавозе никода низя зарание сказать что где и почему будет расположено :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо