Windows-Android-Linux-Visual Basic-PC - nic (NB) блог

 

Дата публикации: 23.07.2019
Автор: nic binary

Visual Basic.Сравнение приложений на языках VB6 и .NET

Сравнение приложений на языках VB6 и .NET на конкретном примере Среда исполнения .NET более требовательна к ресурсам ПК и ОС.Одна из причин этого ,то что приложения не компилируются в машинный (native) код,а создаётся byte code для исполнительной машины CLR.Машина полностью может управлять этим кодом.Подробности работы см. в инете.Кстати VB6 также умеет преобразовывать код программы в т.н. PCODE.Это похоже на интерпретатор,за отсутствием наиболее медленной процедуры-парсинга (parse) исходного кода.Парсинг выполняется компилятором,далее результат преобразуется в специальный набор директив за выполнение которого отвечает уже знакомая нам библиотека msvbvm60.dll. Позже я протестирую производительность этих двух методов трансляции.Пока просто не знаю как это эффективно реализовать на практике.Отмечу,что для работы приложений .NET необходим framework.Microsoft Net Framework.Чаше всего 2.0 или 3.5. Если студия установлена то этот компонент устанавливается автоматически.Иначе получаем вот такую ошибку:

Программа для среды .NET импортирует всего одну библиотеку mscoree.dll. В ней содержится контекст выполнения приложения.Вот как выглядит импорт моего тестового приложения maxmem.exe написанного с использованием VS2008 Express для Net Framework 3.5

Вот скриншот потребляемой этим приложением количества памяти


Как видно приложение состоящее из нескольких строк занимает в контексте 20мб драгоценной (для меня) памяти.Вообще распределение памяти в ОС Windows это тема отдельной книги.Вот код этого приложения.

При старте процесса ,до появления окна на экрана прошло около 5-6 сек.Возьмём примерно такое же приложение написанное на VB6.


Разница почти в два раза ! Это в Windows 10 (x86) А это в Windows XP SP3 (x86) для VB6

А это в Windows XP SP3 (x86) для .NET

Разница в 4 раза ! Чуть выше указан размер памяти занимаемой модулем CLR (mscorsvw) 21 мб.Конечно XP менее требовательная к ресурсам чем Windows 7 и выше.Приложение в 10-ке запускается почти сразу. (визуально конечно)) Вопрос. Зачем "дарить" 20 мб драгоценной RAM памяти?Если это вопрос стабильности и идеалогии ),то он актуален при выполнении приложений на сервере. Конечно,что бы ошибка в приложении не уронила всю систему.Извиняюсь за детсад ))) Для небольших и средних приложений вполне подойдёт среда программирования VB6.А по поводу идеалогии.? Я одинаково отношусь к процедурному программированию и ООП.Опишу конфигурацию на которой "сижу"
Мама ASUS P5LD2 Deluxe socket LGA 775
Камень Pentium 4 630 Prescott
Память DDR2 - 2048 МБ
Видео ,правда ,дискретное.(память не забирает) С таким конфигом приходится заботится о каждом мб памяти) Ну и напоследок код приложения MaxMem на VB6.

Комментарии к странице

Ваш комментарий




Наверх