2.1. Источник лишних килобайт
2.1. Источник лишних килобайт
Для начала создадим новый проект Windows-приложения (Pro j ectl. exe). По умолчанию оно создает и показывает одну пустую форму (объявлена в модуле Unitl. pas). Ничего менять не будем, просто скомпилируем и посмотрим размер ЕХЕ-файла. Больше 300 Кбайт – не многовато ли для такого простого приложения?
Кстати, простейшее оконное приложение, написанное на Visual C++ 6.0 (в Release-конфигурации, то есть без отладочной информации в ЕХЕ-файле) без использования MFC, имеет размер 28 Кбайт, с использованием библиотеки MFC (правда, окно диалоговое) – 20 Кбайт. Простейшее оконное приложение на Visual Basic 6.0 занимает всего 16 Кбайт.
Из-за чего такая разница? Посмотрим, какие библиотеки используются приложениями, написанными на этих языках программирования. Это можно сделать, например, с помощью программы Dependency Walker, входящей в комплект Microsoft Visual Studio (рис. 2.1).
Рис. 2.1. Библиотеки, используемые приложениями
Как видим, приложение на Delphi (правый верхний угол окна на рис. 2.1) использует приличный набор функци й, помещенных в стандартные библиотеки операционной системы Windows. Кроме библиотек операционной системы, приложение на Delphi ничего не использует.
Приложение WinAPI. ехе (левое верхнее окно на рис. 2.1) является примером чистого Windows API приложения в том смысле, что в нем не задействованы библиотеки-оболочки над API-функциями, каким-либо образом облегчающие программирование. Собственно, столько реально и «весит» простейшее оконное приложение.
С приложением MFC. ехе уже интереснее: размер самого ЕХЕ-файла уменьшился за счет того, что часть кода работы с API-функциями переместилась в библиотеки. С приложением на Visual Basic (правое нижнее окно) еще интереснее – оно фактически представляет собой вызовы функций одной библиотеки, в которой и реализована вся поддержка программирования на этом языке (при детальном рассмотрении этой библиотеки в ней можно найти объявления встроенных функций Visual Basic).
К чему это все? А к тому, что приложения на других языках программирования (в данном случае речь идет о продуктах Microsoft) совсем не менее «тяжеловесны», чем приложения, написанные на Borland Delphi, если при их написании программист пользуется не только API-функциями. Особенно примечателен в этом случае пример исполняемого файла Visual Basic, который хотя и имеет малый размер, но требует наличия библиотеки, размер которой около 1,32 Мбайт. Программа на Visual C++ с использованием, например, MFC, в которой реализованы классы оболочки над функциями Windows API (правда, не только они), требуетналичия нескольких DLL. Для Microsoft это не проблема, так как операционная система Windows выпускается именно этой компанией, а следовательно, обеспечить переносимость (здесь – работоспособность без установки) приложений, написанных с использованием ее же сред разработки, очень просто: достаточно добавить нужные библиотеки в состав ОС.
Что же в таком случае осталось сделать Borland? Дабы не лишать программиста возможности пользоваться библиотеками с реализацией самых полезных классов (VCL и не только), код с реализацией этих самых классов приходится компоновать в один файл с самой программой. Вот и получается, что реализация этих самых классов в ЕХЕ-файле может занимать места гораздо больше, чем реализация собственно приложения. Так в нашем случае и получилось.Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
15.14.1 Источник формирования модели NFS
15.14.1 Источник формирования модели NFS Отдельные части системы каталогов Unix могут размещаться на различных жестких дисках. Например, файлы и каталоги /etc могут находиться на одном физическом диске, а каталог /var и его подкаталоги — на другом. Команда mount операционной системы
Удаленный источник света
Удаленный источник света Создание нового удаленного источника света осуществляется командой DISTANTLIGHT, вызываемой из падающего меню View ? Render ? Light ? New Distant Light или щелчком на пиктограмме New Distant Light на панели инструментов Lights или Render.Удаленный источник света испускает
Точечный источник света
Точечный источник света Точечный источник света имитирует обычную лампочку. Свет от такого источника распространяется во всех направлениях. При этом интенсивность светового потока может ослабляться по мере удаления от источника, как это и происходит в жизни.Пример
2.19. Удаление лишних пропусков
2.19. Удаление лишних пропусков Метод strip удаляет пропуски в начале и в конце строки, а вариант strip! делает то же самое «на месте».str1 = " abc "str2 = str1.strip # "abc"str3 = str1.strip! # "abc"#str1 теперь тоже равно "abc".Под пропусками, как обычно, понимаются пробелы, символы табуляции и перевода на
Точечный источник света
Точечный источник света Формирование нового точечного источника света осуществляется командой POINTLIGHT, вызываемой из падающего меню View ? Render ? Light ? New Point Light или щелчком на пиктограмме New Point Light на панели инструментов Lights или Render.Точечный источник света испускает лучи во
Удаленный источник света
Удаленный источник света Создание нового удаленного источника света осуществляется командой DISTANTLIGHT, вызываемой из падающего меню View ? Render ? Light ? New Spotlight или щелчком на пиктограмме New Spotlight на панели инструментов Lights или Render.Удаленный источник света испускает
Точечный источник света
Точечный источник света Формирование нового точечного источника света осуществляется командой POINTLIGHT , вызываемой из падающего меню View ? Render ? Light ? New Point Light или щелчком на пиктограмме New Point Light на панели инструментов Lights или Render.Точечный источник света испускает лучи во
Удаленный источник света
Удаленный источник света Создание нового удаленного источника света осуществляется командой DISTANTLIGHT , вызываемой из падающего меню View ? Render ? Light ? New Distant Light или щелчком на пиктограмме New Distant Light на панели инструментов Lights или Render.Удаленный источник света испускает
Точечный источник света
Точечный источник света Точечный источник света имитирует обычную лампочку. Свет от такого источника распространяется во всех направлениях. При этом интенсивность светового потока может ослабляться по мере удаления от источника, как это и происходит в природе.Пример
13-Я КОМНАТА: Источник
13-Я КОМНАТА: Источник Автор: Леонид Левкович-Маслюк"Источник заразы - муха//Сказал мне один чувак" - двадцать лет назад спел Петр Мамонов. Двадцать лет - а как актуально до сих пор! Недавно один умный чувак по телевизору снова сказал замечательную вещь: современный мир нельзя
ПИСЬМОНОСЕЦ: Чем килобайт хуже килограмма?
ПИСЬМОНОСЕЦ: Чем килобайт хуже килограмма? Раз уж производители железок принимают за килобайт 1000 байт, то я предлагаю (в качестве компенсации морального ущерба юзерам) принять байт равным десяти битам. Так, кстати, и считать проще (один из аргументов тех самых
Источник бесперебойного питания
Источник бесперебойного питания Источник бесперебойного питания может также выйти из строя, хотя, как показывает практика, единственное, что нужно делать вовремя, – это менять аккумуляторную батарею.Что касается ремонта источника бесперебойного питания в домашних
Тупофоны — мобильники без лишних сложностей Андрей Письменный
Тупофоны — мобильники без лишних сложностей Андрей Письменный ОпубликованоАндрей Письменный Мобильный телефон — прекрасное изобретение. Не только потому, что позволяет звонить, где бы ты ни находился, а ещё и потому, что заменяет ещё кучу