![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Массив. Где он? [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]в видавозе никода низя зарание сказать что где и почему будет расположено :)