"модуль не загружался по адресу загрузки по умолчанию."- имеет ли смысл в наши дни? - PullRequest
0 голосов
/ 03 декабря 2010

"модуль не загружался по адресу загрузки по умолчанию."- действительно ли это предупреждающее сообщение имеет смысл в настоящее время с точки зрения производительности.

еще 10–20 лет назад, возможно, было некоторое снижение производительности для повторного сопоставления адресов функций в случае, если модуль загружен в базуадрес, отличный от предпочтительного, но теперь это всего лишь несколько дополнительных миллисекунд, если не меньше.

Я прав или я что-то упустил?

1 Ответ

3 голосов
/ 03 декабря 2010

С точки зрения производительности, вероятно, нет, но это влияет на использование памяти. Windows DLL не являются позиционно-независимым кодом , поэтому, когда DLL нужно переместить на другой адрес, компоновщик должен фактически изменить свой машинный код.Это означает, что он не может быть передан другим процессам;каждая программа получает свою собственную копию кода.С другой стороны, когда DLL загружается по своему предпочтительному адресу в нескольких программах, одни и те же (неизмененные) страницы могут совместно использоваться между ними, что экономит память.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...