КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Надежность приложений
При загрузке сборки, CLR автоматически проверяет наличие предварительно скомпилированной версии сборки и, если она есть, загружает скомпилированный код, так что компиляция в период выполнения производится не будет. Получение процессорного кода Производительность управляемых приложений Каждая запись содержит адрес, по которому можно найти реализацию метода. Эти внутренние структуры данных содержат по одной записи для каждого метода, определенного в типе. Исполнение кода сборки Интеграция языков и повторное использование кода
Непосредственно перед исполнением метода Main() CLR находит все типы, на которые ссылается код Main(). При этом CLR выделяет внутренние структуры данных, используемые для управления доступом к типам, на которые есть ссылки. Многие специалисты считают, что управляемые приложения производительней неуправляемых, и тому есть масса подтверждений. Когда JIT-компилятор компилирует IL-код в команды процессора в период выполнения, он располагает более полными сведениями о среде выполнения в сравнении с компилятором неуправляемого кода: · JIT-компилятор может обнаружить, что приложение запускается на процессоре Pentium 4 и сгенерировать процессорный код, полностью использующий все преимущества особых команд Pentium 4. Неуправляемые приложения обычно компилируются в расчете на процессор, являющийся «наименьшим общим знаменателем», избегая специфических команд, которые заметно повышают производительность приложения на новейших процессорах. · JIT-компилятор может обнаружить, что некоторая проверка всегда приводит к отрицательному результату на конкретной машине. Например, рассмотрим метод с таким кодом: if (numberOfCPUs > 1) { … } Этот код указывает JIT-компилятору, что для машины с одним процессором не нужно генерировать никакие команды процессора. В этом случае собственный код процессора оптимизирован для конкретной машины: он короче и выполняется быстрее. · CLR может проанализировать выполнение кода и перекомпилировать IL-код в команды процессора при выполнении приложения с учетом обнаруженных некорректных прогнозов ветвления. · Код машины подвергается компилятором оптимизации.
Утилита NGen.exe, поставляемую с.NET Framework SDK компилирует весь IL-код некоторой сборки в процессорный код и сохраняет его в дисковом файле.
По мнению специалистов, главное достоинство IL не в том, что он позволяет абстрагироваться от конкретного типа процессора. Главное — надежность приложений. 1. При компиляции IL в команды процессора CLR выполняет верификацию , в процессе которой проверяется, все ли «безопасно» делает высокоуровневый IL-код: нет ли, например, чтения памяти, в которую ничего не записывалось, нужное ли число параметров передается методу и корректны ли их типы, правильно ли используются возвращаемые методами значения, имеют ли все методы операторы возврата и т. д. 2. Метаданные управляемого модуля включают все сведения о методах и типах, необходимые для верификации. Если выясняется, что IL-код «небезопасен», генерируется исключение System.Security.VerificationException, и соответствующий метод не выполняется. 3. Так как управляемые приложения не производят некорректного обращения к памяти и не влияют на код другого приложения, CLR предоставляет возможность выполнения множества управляемых приложений в одном процессе ОС. С этим связано понятие домен приложения. Библиотека классов.NET Framework В.NET Framework включены сборки библиотеки классов.NET Framework Class Library ( FCL ), содержащие определения нескольких тысяч типов. В результате CLR и FCL позволяют пользователям создавать следующие виды приложений: ■ Web-сервисы XML. Методы, к которым можно легко обратиться через Интернет. Web-сервисы, конечно же, являются главным козырем инициативы Microsoft под названием «.NET». ■ Web Forms. Приложения, основанные на HTML (Web- сайты). Обычно приложения Web Forms выполняют запросы к БД и вызовы Web-сервисов, объединяют и фильтруют полученные данные, а затем выводят их в браузере, предоставляя развитый пользовательский интерфейс, основанный на HTML. Технология Web Forms поддерживается средой разработки в стиле Visual Basic 6.
■ WindowsForms. Windows-приложения с богатым графическим интерфейсом пользователя. Как и приложения Web Forms, приложения Windows Forms выполняют запросы БД и вызовы Web-сервисов XML. Для Windows Forms предлагается среда разработки, подобная Visual Basic 6. (Классы для офисных приложений.) ■ КонсольныеприложенияWindows. ■ СлужбыWindows, которыми управляет диспетчер Windows Service Control Manager (SCM). ■ Библиотекикомпонентов. .NET Framework позволяет создавать автономные компоненты (типы), которые легко использовать со всеми перечисленными выше видами приложений.
Дата добавления: 2014-01-15; Просмотров: 437; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |