Главная » Просмотр файлов » Марк Лутц - Изучаем Python, Четвертое издание

Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 19

Файл №1184811 Марк Лутц - Изучаем Python, Четвертое издание (Марк Лутц - Изучаем Python, Четвертое издание) 19 страницаМарк Лутц - Изучаем Python, Четвертое издание (1184811) страница 192020-08-21СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Эта реализация имеет бесшовную интеграцию с Java. Поскольку программный код на языке Python транслируетсяв байт-код Java, во время выполнения он ведет себя точно так же, как настоящая программа на языке Java. Сценарии на языке Jython могут выступатьв качестве апплетов и сервлетов, создавать графический интерфейс с использованием механизмов Java и так далее. Более того, Jython обеспечивает поддержку возможности импортировать и использовать Java-классы в программномкоде Python. Тем не менее поскольку реализация Jython обеспечивает болеенизкую скорость выполнения и менее устойчива по сравнению с CPython, онапредставляет интерес скорее для разработчиков программ на языке Java, которым необходим язык сценариев в качестве интерфейса к Java-коду.IronPythonТретья (и к моменту написания этих строк самая новая) реализация языка Python – это IronPython.

Она предназначена для обеспечения интеграциипрограмм Python с приложениями, созданными для работы в среде Microsoft.NET Framework операционной системы Windows, а также в Mono – открытомэквиваленте для операционной системы Linux. Платформа .NET и среда выполнения языка C# предназначены для обеспечения взаимодействий междупрограммными объектами – независимо от используемого языка программирования, в духе более ранней модели COM компании Microsoft. РеализацияРазновидности модели выполнения71IronPython позволяет программам на языке Python играть роль как клиентских, так и серверных компонентов, доступных из других языков программирования .NET.Модель реализации IronPython очень напоминает Jython (и фактически разрабатывается одним и тем же автором) – она подменяет два этапа на рис. 2.2 справа на эквиваленты среды .NET.

Кроме того, как и Jython, основной интересIronPython представляет для разработчиков, которым необходима интеграция Python с компонентами .NET. Поскольку разработка ведется компаниейMicrosoft, от IronPython, кроме всего прочего, можно было бы ожидать существенной оптимизации производительности. К моменту написания этих строкреализация IronPython еще продолжала разрабатываться. За дополнительнойинформацией обращайтесь к ресурсам Python или попробуйте самостоятельнопоискать в Сети.1Средства оптимизации скорости выполненияВсе три реализации, CPython, Jython и IronPython, реализуют язык Pythonпохожими способами: исходный программный код компилируют в байт-коди выполняют полученный байт-код с помощью соответствующей виртуальноймашины.

Но кроме них существуют и другие реализации, включая динамический компилятор Psyco и транслятор Shedskin C++, которые пытаются оптимизировать основную модель выполнения. Знание этих реализаций не является для вас обязательным на этой стадии изучения языка Python, тем не менее,краткий обзор их реализации модели выполнения поможет пролить свет намодель выполнения в целом.Динамический компилятор PsycoСистема Psyco – это не другая реализация языка Python, а компонент, расширяющий модель выполнения байт-кода, что позволяет программам выполняться быстрее. В терминах схемы на рис. 2.2 Psyco – это расширение PVM,которое собирает и использует информацию о типах, чтобы транслироватьчасти байт-кода программы в истинный двоичный машинный код, которыйвыполняется гораздо быстрее.

Для такой трансляции не требуется вносить изменения в исходный программный код или производить дополнительную компиляцию в ходе разработки.Грубо говоря, во время выполнения программы Psyco собирает информациюо типах объектов и затем эта информация используется для генерации высокоэффективного машинного кода, оптимизированного для объектов этоготипа. После этого произведенный машинный код замещает соответствующиеучастки байт-кода и тем самым увеличивает скорость выполнения программы.В результате при использовании Psyco существенно уменьшается общее времявыполнения программы. В идеале некоторые участки программного кода под1Jython и IronPython – это полностью независимые реализации языка Python, которые компилируют исходный программный код для различных архитектур временивыполнения.

Из программ для CPython также можно получить доступ к программным компонентам Java и .NET: например, системы JPype и Python for .NET позволяют коду, исполняемому интерпретатором CPython, обращаться к компонентам Javaи .NET.72Глава 2. Как Python запускает программыуправлением Psyco могут выполняться так же быстро, как скомпилированныйкод языка C.Поскольку эта компиляция из байт-кода производится во время выполнения программы, обычно Psyco называют динамическим (just-in-time, JIT)компилятором. Однако в действительности Psyco немного отличается от JITкомпиляторов, которые, возможно, некоторые читатели видели в языке Java.В действительности Psyco – это специализированный JIT-компилятор; онгенерирует машинный код, оптимизированный для типов данных, которыефактически используются в программе.

Например, если один и тот же участокпрограммы использует различные типы данных в разное время, Psyco можетгенерировать различные версии машинного кода для поддержки каждой изкомбинаций.Применение Psyco показывает существенное увеличение скорости выполнения программного кода Python. Согласно информации, которая приводитсяна домашней странице проекта, Psyco обеспечивает увеличение скорости «от2 до 100 раз, обычно в 4 раза, при использовании немодифицированного интерпретатора Python, неизменного исходного текста, всего лишь за счет использования динамически загружаемого модуля расширения на языке C».При прочих равных условиях наибольший прирост скорости наблюдается дляпрограммного кода, реализующего различные алгоритмы на чистом языкеPython, – именно такой программный код обычно переносят на язык C с целью оптимизации.

При использовании Psyco необходимость в таком переносетеряет свою остроту.До сих пор Psyco не является стандартной частью Python – его нужно загружать и устанавливать отдельно. Кроме того, он до сих пор находится на экспериментальной стадии развития, поэтому вам нужно будет следить за его разработкой. В действительности, когда я пишу эти строки, Psyco все еще можнозагрузить и установить, но похоже, что большая его часть будет поглощена более новым проектом «PyPy», который представляет собой попытку переписатьPVM на языке Python с целью обеспечения высокой степени оптимизации, какв Psyco.Пожалуй, самым большим недостатком Psyco является то обстоятельство, чтов настоящее время он способен генерировать машинный код только для архитектуры Intel x86, впрочем, на этой архитектуре работают такие операционныесистемы, как Windows, Linux и даже Mac.

За дополнительной информациейо расширении Psyco и других попытках реализации JIT-компилятора обращайтесь на сайт http://www.python.org. Кроме того, вы можете посетить домашнюю страницу проекта Psyco, которая в настоящее время размещается по адресу http://psyco.sourceforge.net.Транслятор Shedskin C++Shedskin – это еще одна система, которая реализует нетрадиционный подходк выполнению программ на языке Python. Она преобразует исходный код наязыке Python в исходный код на языке C++, который затем может быть скомпилирован в машинный код. Кроме того, эта система реализует платформонезависимый подход к выполнению программного кода Python.

К моменту написания этих строк система Shedskin еще находилась на экспериментальнойстадии развития и ограничивала программы Python неявным использованиемРазновидности модели выполнения73статических типов, что является ненормальным явлением для программ наязыке Python, поэтому мы не будем углубляться в описание этой системы. Темне менее, по предварительным результатам, у нее имеется немалый потенциал,чтобы выиграть гонку за скоростью как у стандартной реализации Python, таки у расширения Psyco, и это весьма многообещающий проект.

Сведения о текущем состоянии проекта вы можете самостоятельно найти в Сети.Фиксированные двоичные файлыИногда, когда пользователи спрашивают про «настоящий» компилятор языкаPython, в действительности они просто ищут способ создавать из своих программ на языке Python самостоятельные исполняемые файлы. Это необходимо скорее для упаковки и распространения программ, чем для их исполнения,но эти две стороны взаимосвязаны между собой. При помощи инструментовсторонних разработчиков, которые можно загрузить из Сети, вы можете превратить свои программы на языке Python в настоящие исполняемые файлы,которые в мире Python известны как фиксированные двоичные файлы (frozenbinaries).Фиксированные двоичные файлы объединяют в единый файл пакета байт-кодпрограмм, PVM (интерпретатор) и файлы поддержки, необходимые программам. Существуют разные реализации такого подхода, но в конечном результате получается единственный исполняемый файл (например, файл с расширением .exe в Windows), который легко можно передать заказчику.

Такую модельможно представить, если на рис. 2.2 объединить байт-код и PVM в единый компонент – фиксированный двоичный файл.На сегодняшний день существует три основных инструмента создания фиксированных двоичных файлов: py2exe (для Windows), PyInstaller (напоминаетpy2exe, но также работает в Linux и UNIX и способен производить самоустанавливающиеся исполняемые файлы) и freeze (оригинальная версия). Вам придется загружать эти инструменты отдельно от Python, но они распространяются совершенно бесплатно. Кроме того, они постоянно развиваются, поэтомусвежую информацию об этих инструментах смотрите на сайте проекта Python(http://www.python.org) или ищите с помощью поисковых систем.

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

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

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6294
Авторов
на СтудИзбе
314
Средний доход
с одного платного файла
Обучение Подробнее