Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.24;
Скачать: CL | DM;

Вниз

Const Массив   Найти похожие ветки 

 
Кто б сомневался ©   (2009-11-18 00:43) [40]

Я напомню с чего все началось.
Был задан вопрос, есть ли разница если строки будут добавлены как const или как ресурсы в плане загрузки в память.
Я говорю что особой нет, т.к. так или иначе образ будет закеширован почти полностью при старте (если он небольшой конечно).
Что и привел на примере 34.

Если я в чем то ошибся, то объясните мне Игорь в чем конкретно, без этого троллизма.


 
Игорь Шевченко ©   (2009-11-18 01:33) [41]


> Я говорю что особой нет, т.к. так или иначе образ будет
> закеширован почти полностью при старте (если он небольшой
> конечно).


Ты помести фильм на пару сотен мегабайт в ресурс и посмотри, как Windows обращается к диску...
И еще: у тебя антивирус стоит ? Если да, то он может весь файл при обращении к нему, включая ресурсы.

"The loader uses the memory-mapped file mechanism to map the appropriate pieces of the file into the virtual address space. To use a construction analogy, a PE file is like a prefabricated home. It"s essentially brought into place in one piece, followed by a small amount of work to wire it up to the rest of the world (that is, to connect it to its DLLs and so on). This same ease of loading applies to PE-format DLLs as well. Once the module has been loaded, Windows can effectively treat it like any other memory-mapped file"
http://msdn.microsoft.com/en-us/library/ms809762.aspx


 
Кто б сомневался ©   (2009-11-18 03:35) [42]


> Ты помести фильм на пару сотен мегабайт в ресурс и посмотри,
>  как Windows обращается к диску...


Я это уже говорил. что небольшие размером 3 мб и больше незнаю до скольки .


> И еще: у тебя антивирус стоит ? Если да, то он может весь
> файл при обращении к нему, включая ресурсы.


У меня запущено всего 8 служб. Из прог стоит только файрволл Outpost 4 в котором почти все отключено, кроме DNS и Резалка релкамы и детектора аттак. Я его вырубил для проверки, проверил еще раз - то же самое. Проверь у себя, возможно будут другие результаты.
Может это потому что у меня своп выключен.


 
Anatoly Podgoretsky ©   (2009-11-18 07:43) [43]

> Кто б сомневался  (18.11.2009 00:43:40)  [40]

Разница, в общем случае есть, поскольку ресурсы будут подкачивать с диска, командой LoadString, а const просто ссылка на память, из сегмента CODE


 
Leonid Troyanovsky ©   (2009-11-18 07:57) [44]


> Кто б сомневался ©   (18.11.09 03:35) [42]

> Может это потому что у меня своп выключен.

Ресурсы мапятся только для чтения, т.е., в этой
части файл подкачки участия не принимает.

Разница будет со страницами данных на запись.

--
Regards, LVT.


 
Кто б сомневался ©   (2009-11-19 16:22) [45]


> Разница, в общем случае есть, поскольку ресурсы будут подкачивать
> с диска, командой LoadString


Созал sfx архив на 16 mb - 7z. Перезагрузился.
Запустил, график показал, жму распаковку на другой диск, график на нуле.
Закрыл, открыл опять - график на нуле. Кэширование? Да, тут и спорить нет смысла.


 
Игорь Шевченко ©   (2009-11-19 17:36) [46]

Кто б сомневался ©   (19.11.09 16:22) [45]

Ссылок тебе дадено - читай и воздастся


 
Кто б сомневался ©   (2009-11-19 19:08) [47]


> Ссылок тебе дадено - читай и воздастся


Я и раньше знал что файл проецируется. Но на деле получается что образ кэшируется почти полностью. Статьи статьями (кстати 8 летней давности), но ОС развивается, что то меняется, улучшается с сервис паками.


 
Кто б сомневался ©   (2009-11-19 19:10) [48]


>  Статьи статьями (кстати 8 летней давности), но ОС развивается,


Поэтому принимать за догму, свято веря не правильно мягко говоря.


 
Кто б сомневался ©   (2009-11-19 19:12) [49]


> Игорь Шевченко ©   (18.11.09 01:33) [41]
http://msdn.microsoft.com/en-us/library/ms809762.aspx


March 1994  - уже прошло 16 лет.


 
Anatoly Podgoretsky ©   (2009-11-19 19:49) [50]

> Кто б сомневался  (19.11.2009 16:22:45)  [45]

А речь не про диск, а про LoadString, диск естественно будет закеширован, но вызов функции не куда не денется.


 
Anatoly Podgoretsky ©   (2009-11-19 19:49) [51]

> Кто б сомневался  (19.11.2009 16:22:45)  [45]

А речь не про диск, а про LoadString, диск естественно будет закеширован, но вызов функции не куда не денется.


 
Игорь Шевченко ©   (2009-11-19 20:02) [52]

Кто б сомневался ©   (19.11.09 19:10) [48]

Мягко говоря, тебе ссылок было дано не только в последнем моем посте, но и раньше. Читай и воздастся тебе.

Еще раз: исполняемый модуль всегда проецируется в адресное пространство процесса. Какие страницы и какое их количество коммитится (загружается с диска в рабочий набор процесса) при первом обращении к коду модуля - подробно пишет Руссинович, Остерлунд и так далее.
Страницы ресурсов при загрузке обычно не попадают в рабочий набор.

Судить по индикатору диска занятие более чем глупое, судить можно по Performance monitor, смотря показания page faults.


 
Кто б сомневался ©   (2009-11-19 20:43) [53]


> А речь не про диск, а про LoadString, диск естественно будет
> закеширован, но вызов функции не куда не денется.


Можно поподробнее. Т.е. при старте exe образ кэшируется,  вы это хотите сказать?


> Судить по индикатору диска занятие более чем глупое

Еще раз повторюсь. Был вопрос, кэшируется ли exe в память или читается с диска при первом запросе. В данном случае счетчик из Performance monitor под названием Local Disk четко показывает эту картину.
Идет обращение к диску или нет. У меня не идет, exe кэшируется при старте.
Я не пойму почему это по твоему "глупое занятие", если мне нужно узнать кол. обращений к диску?
Объясни конкретно, чтобы уже закрыть этот спор..


 
Кто б сомневался ©   (2009-11-19 20:52) [54]


> или читается с диска при первом запросе


Имеется ввиду - "или ресурсы читаются с диска при первом запросе".
Если нет, то почему на практике получается иное?


 
Игорь Шевченко ©   (2009-11-19 20:58) [55]

Кто б сомневался ©   (19.11.09 20:43) [53]


>  В данном случае счетчик из Performance monitor под названием
> Local Disk четко показывает эту картину.


В данном случае смотри счетчик page faults


> Был вопрос, кэшируется ли exe в память


Нет


> или читается с диска при первом запросе


По мере обращения к страницам exeшника (dll), они отображаются в рабочий набор процесса. Возможно кластерами, размер кластера зависит от кучи факторов, в том числе от типа носителя.


> Объясни конкретно


Рассказывай конкретно характеристики своей системы. Все.


 
Anatoly Podgoretsky ©   (2009-11-19 21:00) [56]

> Кто б сомневался  (19.11.2009 20:43:53)  [53]

Ничего подобного я не говорил, закешировано будет 16 строк минимум, при загрузке одной строки. При том ты меняешь суть, вопрос был не про диск и прочее, а есть ли разница, разница есть на вызове функции.


 
Anatoly Podgoretsky ©   (2009-11-19 21:00) [57]

> Кто б сомневался  (19.11.2009 20:52:54)  [54]

Работа с ресурсами очень оптимизирована.



Страницы: 1 2 вся ветка

Текущий архив: 2010.01.24;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.01 c
1-1234441892
Tack
2009-02-12 15:31
2010.01.24
Неразрывный пробел в RichEdit


2-1259791180
kolj
2009-12-03 00:59
2010.01.24
Проблемы с ClientDataSet


2-1259934788
Matveih1
2009-12-04 16:53
2010.01.24
Как сделать проект автономным


2-1260028195
dplz
2009-12-05 18:49
2010.01.24
Фон в listbox


15-1258619414
Юрий
2009-11-19 11:30
2010.01.24
С днем рождения ! 19 ноября 2009 четверг