Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

G.5.12. Этап 9b. Ручная оптимизация памяти.

Программа MemMaker.exe поставляется только с MS-DOS версий 6.xx. Ни в ранних версиях MS-DOS, ни в более поздних версиях (MS Windows 95/98) этой утилиты нет. Программа же Optimize оптимизирует память только при установленном драйвере Quemm386.sys. Поэтому если Вы используете драйверы расширенной памяти Himem и дополнительной памяти Emm386, а возможность запуска программы MemMaker отсутствует, то Вам придется проводить оптимизацию вручную.

Для оптимизации памяти "вручную" Вам потребуется программа Mem.exe, поставляемая в составе операционных систем MS-DOS версий 5.0 и выше, е также Microsoft Windows 95/98. В случае ее отсутствия (некомплекта системы), можно воспользоваться программами Mapmem.com ("карта памяти") и Mft.exe ("Манифест"). В дальнейшем будет в основном описываться ручная оптимизация с помощью программы mem.exe.

Для оптимизации памяти вручную вначале надо собрать следующую информацию о резидентных программах и драйверах;

1. Истинный размер каждой из программ.

2. Размер каждой из программ, занимаемый ею в оперативной памяти.

3. Размер сегментов в каждой программе, отводимых под ее код, окружение и данные.

Истинный размер программы определяется с помощью команды DIR, вызванной из командной строки MS-DOS. Можно также воспользоваться файловыми оболочками, указав в опциях просмотра содержимого директории "Full" ("Полный список").

Размер, занимаемый программой в памяти, определяется с помощью программы mem с ключом /C, mapmem и mft. Эти программы также сообщат, какое количество базовой, расширенной и дополнительной памяти занимают эти программы, а какое количество памяти остается свободным. И только следующая команда:

mem /M <имя модуля>

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

(* Конечно,если Вы не программист или хакер, во всю использующий программы-отладчики типа debug, CodeView, TurboDebuger и т.п. В Windows 95/98 сегментные адреса, но не их размер (придется поупражняться в шестнадцатеричной арифметике), можно также определить, выбрав из контекстного меню файла с резидентной программой пункт "Properties " ("Свойства"). Там же содержится другая, менее интересная информация.)

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

1. Загрузка командой install в файле Config.sys - лучше применять в случае, если программа не имеет сегмента с данными. Например, когда программа полностью переопределяет прерывание. Также необходимо соблюдать последовательность загрузки - смотри раздел, посвященный минимизации базовой памяти.

2. Загрузка командой lh (loadhi для драйвера Quemm386.sys) в область старших адресов памяти. Она эффективна в случае присутствия и сегмента кода, и сегмента данных, причем и тот, и другой расположены "компактно", без лишних промежутков. В противном случае необходима загрузка в два или более блока старших адресов.

3. Загрузка программ в верхнюю память с помощью программы loadfix. Как правило, в описании таких программ есть пункт, рекомендующий такую загрузку. Таким образом нельзя загружать сжатые и упакованные программы*!

(* Например, с помощью программ pklite, lzexe и exepack).

4. Загрузка в базовую память. Этот способ рекомендуется в случае, если резидентную программу либо приходится часто выгружать из памяти, либо она использует связанные области и оверлей. Последний способ встречается, к счастью, редко**.

(** Автор считает такой стиль написания резидентных программ самым безграмотным и вредным).

Выяснив, куда лучше разместить каждый из требуемых к загрузке модулей, напишите соответствующую строку в файлах Config.sys и Autoexec.bat. Все драйверы (кроме указанных особо: Himem.sys, Emm386.exe, Quemm386.sys, Smartdrv) следует загружать командой DEVICEHIGH.

Если Вы решили использовать загрузку резидентных программ в область старших адресов (UMB), предварительно запустите программу mem с ключом /F. Эта команда выведет листинг свободных блоков старшей памяти. Требования к загрузке в старшие адреса следующие:

1. Несколько программ, загруженных программой lh, не могут использовать одну и ту же область адресов.

2. Резидентная программа может занимать либо часть блока старших адресов, либо весь блок, либо несколько блоков, но никак иначе (то есть запрещена фрагментация старшей памяти.)

3. Размер программы в блоке можно ограничить, указав минимальный размер, который будет гарантировано выделяться программе.

4. Программе по умолчанию предоставляется весь блок старшей памяти. Чтобы программа не заняла под себя весь блок, поставьте после команды lh ключи /L с параметрами и /S. (Параметры смотри в книге Фигурнова или в On-line - овом руководстве по MS-DOS.)

5. В случае нехватки старшей памяти программа будет загружаться в базовую память.

Оптимизация памяти в ручную - процесс длительный. Вам не раз придется вызывать программу mem с различными параметрами, прежде чем Вы добьетесь нужного результата. Зато результат будет превосходным с первого раза! Опции, необходимые для программ lh MemMaker и т.п. смотри в приведенных здесь перепечатках.

Удачи Вам в оптимизации памяти! Good Luck!

Назад | Содержание

 

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...