Читая Лутца. Глава 2
Продолжаем воскресное чтение в сельской школе. Во второй главе говорится о том, как интерпритатор выполняет программы.
Компиляция в байт-код
После запуска программы Python внутренне и почти полностью скрыто от нас сначала компилирует твой хэллоуворлд в формат, известный как байт-код. Трансляция происходит со скоростью выполнениня, а уже транслированный байт-код выполняется быстрее, чем если выполнять исходный код.
Если ты задавался вопросом, что за папка pycache, то знай, она нужна не только для того, чтобы добавлять ее в гитигнор, она содержит файлы байт-кода .рус которые сохраняются и потом исполняются без повторной трансляции. Отдельно упоминается, что кэшируются только файлы с байт-кодом импортируемых файлов, .рус для сценариев верхнего уровня (мэйн.пу) не сохраняются. То есть речь идет об оптимизации импорта.
Заново придется их компилировать в двух случаях - ты изменил исходный код и ты обновил питухон.
Затем уже готовые или только что созданные файлы с байт-кодом передается на исполнение PVM - виртуальной машине питон.
Влияние на производительность
Далее афтор говорит о том, что эта модель выполнения хреново сказывется на производительности, но норм сказывается на удобстве разработки, так как среда разработки и среда выполнение - это одно и то же лицо и можно ставить эксперименты по выводу хэллоуворлда на экран не компилируя код каждый раз.
Реализации питона
Существует много реализаций языка, тот, что мы подразумеваем, гордо говоря, что пишем на питоне - CPython, остальные - полное говно и должны умереть.
Инструменты оптимизации выполнения
Cython: гибрид Python/C представляет собой гибридный язык, который объединяет код Python с возможностью вызова функций С.
Shed Skin: пытается транслировать исходный код Python в код C++, который затем с помощью имеющегося компилятора C++ компилируется в машинный код.
Система Psyco: тоже пытается сделать бедный питухон быстрее.
Фиксированные двоичные файлы
Когда ты пишешь в гугле “настоящий компилятор Python скачать бесплатно без смс", ты скорее всего ищешь способ генерации автономных двоичных исполняемых файлов из своих программ Python.
С помощью сторонних инструментов со встроенным майнером, которые можно найти в Интернете, возможно превращение программ Python в настоящие исполняемые файлы, которые называются фиксированными двоичными файлами.
Фиксированные двоичные файлы объединяют в единственный пакет байт-код твоих файлов программ вместе с интерпретатором и любыми необходимыми файлами поддержки. На выходе ты получаешь привычный экзешник. Зачем так делать - хрен знает.
В следующий раз поговорим о том, как программы выполняются с точки зрения пользователя, т.е. в какое окошко писать, чтобы сделать свой инстаграм. Подписывайтесь на канал 'Программирование на python' на Пикабу, ставьте лайк, жмите колокольчик и вот это вот всё.




Программирование на python
1K поста12K подписчика
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• конструктивность комментариев
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу