Главная » Просмотр файлов » Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)

Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865), страница 8

Файл №1160865 Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (Нэш Трей - C# 2010. Ускоренный курс для профессионалов (2010)) 8 страницаНэш Трей - C# 2010. Ускоренный курс для профессионалов (2010) (1160865) страница 82019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

При компиляции типичных "родных" приложений код оптимизируется на основе обобщений, таких как типичная топология компьютерной системы. Код после ,ПТ-компиляции оптимизирован непосредственно для платформы, на которой он выполняется в данный момент. ЛТ-компилятор может учитывать весьма специфичные параметры платформы во время оптимизации скомпилированяого кода и часто генерирует намного более производительный код, чем у статически скомпилированных "родных" приложений. ° Среда СгЛ может отслежиаагпь часпюгпу вызовов. Если СЬй видит, что раздел ЛТ-компилированного кода не вызывался в течение длительного времени, то может освободить место, занятое им.

При следующем вызове код будет перекомпилирован снова. СЬВ также может проводить оптимизацию во время выполнения. В "родных" приложениях оптимизация задается во время компиляции. Но поскольку в среде СЬК оптимизация происходит во время выполнения, она может быть применена в любой момент. Иногда случается так, что реализация СЬВ сможет компилировать код быстрее, но с меньшей степенью оптимизации, и она может так поступать по умолчанию. Однако для кода, который вызывается часто, может быть выполнена перекомпиляция с включенной оптимизацией, чтобы он выполнялся быстрее.

Например, модель эффективности СЬК значительно изменяется в зависимости от того, сколько центральных процессоров установлено на целевой платформе, или даже в зависимости от того, к какому семейству принадлежит центральный процессор. Чтобы приспособиться к такой ситуации, для "родных" приложений приходится выполнять много ручной работы — будь то во время выполнения или во время компиляции. Но СЬК предоставляет свои средства, поэтому увеличить производительность приложения на многопроцессорных системах намного проще. Вдобавок, если С1Л определит, что разные части кода, разбросанные по всему приложению, вызываются довольно часто, она может переместить их в памяти так, чтобы они располагались внутри одной группы страниц памяти, тем самым сводя к минимуму количество случаев ненападания на страницу и повышая эффективность каша кода при выполнении приложения.

Вдобавок СЕЙ может выполнять оптимизацию ветвей в любой момент, перекомпилируя их ЛТ-компилятором, в то время как в "родных" приложениях приходится применять так называемую управляемую профилем огипимизацию (Ргойе-Оигйеб Орйпйзайоп) — оптимизацию на основе предположений разработчика относительно наиболее вероятной конфигурации платформы, на которой пользователь будет запускать приложение.

Другими словами, в случае "родного" приложения оптимизация строится на базе предположений, тогда как в случае СЬК вЂ” на реальных данных о платформе, на которой выполняется приложение. Это лишь некоторые аргументы, доказывающие, что СЬК является гибкой целевой платформой, и почему ее преимущества перевешивают ущерб для производительности, вызванный начальной ЛТ-компиляцией. Сборки и загрузчик сборок Сборка (аээешо)у) — это дискретная единица многократно используемого кода внутри СЬВ. По своей природе она подобна РЫ библиотеке из мира неуправляемого кода, но на этом все сходство заканчивается. Сборка может состоять из множества модулей, которые обьедвзгяет вместе маниг,'бестп, описывающий содержимое сборки. С точки зрения операционной системы, модуль идентичен РЫ библиотеке.

Сборки могут иметь присоединенные к ним версии, что позволяет идентифицировать одноименные сборки, но с разными версиями, как отдельные. Сборки также содержат метаданные, опи- 32 Глава 2 сывающие содержащиеся в них типы. При поставке "родной" РЫ библиотеки обычно включается заголовочный файл и/илн документация, описывающая экспортированные функции. Метаданные удовлетворяют этим требованиям, полностью описывая типы, содержащиеся внутри сборки.

Короче говоря, сборки — это снабженные версиями, самоописательные единицы многократно используемого кода в среде С1К. Как упоминалось в главе 1, в результате компиляции программы "Не11о Юог1б1" получается файл . ехе, который фактически является сборкой. Для создания управляемых сборок может применяться любой управляемый язык. Более того, в большинстве случаев любой другой управляемый язык может использовать управляемые сборни, написанные на любом управляемом языке. Таким образом, очень легко создавать сложные системы, разрабатываемые на нескольких управляемых языках. Например, для создания низкоуровневых типов наиболее естественным языком может оказаться С++/СЫ, пользовательский интерфейс верхнего уровня лучше создавать на С№ или Чаэиа1 Ваз!с, а нод, выполняющий сложные вычисления — на языке г №.

Чтобы обеспечить функциональную совместимость между разными языками, в СЫ определено подмножество общей системы типов 1Сопппоп ТУре Буэ1еш — СТБ). которое называется спецификацией общего языка 1Сопппоп 1япяцаяе Брес1))сацоп — С1.Б). Если вы применяете в своих сборках только С)8-совместимые типы, то можете быть уверены, что код на любом управляемом языке сможет их использовать. Минимизация рабочего набора приложения В примере "Не11о \Чог1бг результирующая сборка состоит всего из одного файла. Однако сборки могут состоять и из многих файлов. Зти файлы могут включать скомпилированные модули, ресурсы и любые другие компоненты, перечисленные в манифесте сборки Манифест сборки обычно включается в главный модуль сборки и содержит важную идентифицирующую информацию, в том числе то, какие части относятся к сборке.

Используя зту информацию, загрузчик сборок может определить, помимо прочего, комплектность сборки или факт ее подделки. Сборки могут быть строго или не строго именованными. Строго именованная сборка имеет хеш-код, встроенный в ее манифест, который может использоваться загрузчиком для проверки целостности сборки и гарантии, что она не была подделана. Сборки могут также снабжаться электронной подписью, идентифицирующей их разработчика. Когда запускается исполняемая программа С№, среда СЬК загружает сборку и запускает метод точки входа.

Конечно, прежде чем сделать это, должна быть проведена ЛТ-компиляция. На этой стадии среде СЬК может понадобиться разрешить некоторые внешние ссылки, чтобы ЛТ-компиляция кода прошла без ошибок. Например, если метод Наьэ создает экземпляр класса по имени Етр1оуее, то СЬК должна найти и загрузить сборку, содержащую тип кпр1оуее. после чего ЛТ-компиляция может быть продолжена.

Замечательное свойство СЬК состоит в том, что она загружает сборки по мере необходимости. Поэтому, если есть тип, предоставляющий метод для печати документа, и он расположен в сборке, отличной от той, что содержит главное приложение, и при этом приложение никогда не реализует эту зависимость, то эта отдельная сборка никогда не будет загружаться. Это предохраняет рабочий набор приложения от чрезмерного роста. Таким образом, при проектировании приложений имеет смысл выносить менее часто используемые средства в отдельные сборки, чтобы среда СЬК загружала их только по мере надобности. В любой момент можно сократить рабочий набор приложения, снизить время запуска, а также уменьшить размер "отпечатка памяти" работающего приложения.

Ключ к атому — разбиение кода на отдельные единицы, или сборки. Если выполняемый совместно код разбросан по разным сборкам, то нет смысла создавать приложение из нескольких сборок, поскольку в этом случае теряются преимущества, связанные с наличием множества сборок. С№ з С1й 33 Назначение сборкам имен Именовать сборки можно двумя основными способами. ° Сюрогое рюлное) именование. Такая сборка имеет имя, состоящее нз четырех частей: краткое имя сборки, номер версии, идентификатор культуры в формате 1ЗО и хеш-маркер.

Если имя сборни состоит из всех четырех частей, она считается строго именованной. ° Частичное именование. Такая сборка имеет имя, в котором опущены некоторые детали строго именованной сборки. Чтобы получить представление о том, как выглядит нмя сборки, откройте ЪИпбоив Ехр1огег и перейдите к глобальному кашу сборок 1О!оЬз) Аэзеп1Ыу Сас)те — ОАС), находящемуся в каталоге Ъэузгетгоос% ~ аз зевЬ1у. В действительности структура каталогов очень сложна, но подключаемый модуль ОАС Ехр!огег представляет то, что вы видите, в браузере. Если вы перейдете в тот же каталог с помощью командной строки, то увидите имена каталогов, используемые ПАС для хранения сборок.

Не пытайтесь вмешиваться в зту структуру каталогов, иначе вы можете серьезно повредить ОАС. Сосредоточившись на представлении в Ехр1огег, можно увидеть имена сборок, состоящие из четырех частей. Если часть, описывающая культуру, имени сборки пуста. это значит, что данная сборка нейтральна в отношении культурьь что присуще сборкам, содержащим только код. Рекомендуется изолировать все ресурсы в отдельной сборке, чтобы можно было сделать их специфичными для культуры и легко заменять, не затрагивая код приложения. Подобные рекомендации существуют многие годы и в программировании на платформе Ъйп32, что позволяет легко локализовать приложение для других языков. Преимущество строго именованных сборок состоит в том, что они могут быть зарегистрированы в САС и стать доступными для использования всеми приложениями системы.

Регистрация сборки в ОАС аналогична регистрации в системном реестре СОМ-сервера. Если сборка не является строго именованной, то приложение может использовать ее лишь локально. Другими словами, сборка должна находиться где-то в каталоге приложения, использующего ее, либо в его подкаталогах. Такие сборки часто называют привагпными. Загрузка сборок Загрузчик сборок во время своей работы проходит через довольно сложную процедуру.

Часть этого процедуры относится к определению, какую версию сборки необходимо загрузить. Используя конфигурационные файлы приложения, моз1но предоставить загрузчику некоторые подсказки во время определения версии. СЬВ может загружать сборки по мере надобности, или же вы можете загрузить их явно вызовом Аррцотз№п .

Ьозс1 ( ) . Загрузчик просматривает частично именованные сборки в том же каталоге, где находится работающее приложение, или в его подкаталогах. Во время поиска сборки загрузчик может также обратиться к ОАС; например, при загрузке сборки с полностью квалифицированным именем загрузчик просматривает САС перед обращением к локальным каталогам. Версии играют ключевую роль во время загрузки сборок, и все сборки снабжены информацией о версии. Механизм контроля версий был встроен в загрузчик С).Е изначально, и это исключает такую неприятность, которая называется адом глЛ. 1РЫ.

Характеристики

Тип файла
DJVU-файл
Размер
8,22 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Нэш Трей - C# 2010
Accelerated_C_2010-4565
3_syntax_overview
3_generics_1.cs
as_1.cs
boxing.cs
conversions_1.cs
implicit_type_1.cs
is_1.cs
references_1.cs
references_2.cs
references_3.cs
values_1.cs
4_classes_structs
4_abstract_classes_1.cs
4_beforefieldinit_1.cs
4_box_1.cs
4_box_2.cs
4_box_3.cs
4_box_4.cs
4_box_5.cs
4_class_definition_1.cs
4_compareto_1.cs
4_containment_example_1.cs
4_containment_example_2.cs
4_containment_example_3.cs
4_ctor_struct_1.cs
4_ctor_struct_2.cs
4_ctor_struct_3.cs
4_destructor_1.cs
4_destructor_2.cs
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7026
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее