Рубрики
Без рубрики

Погружение в реализацию Python

Вы прочитали это правильно. Это все о реализации. Сегодня мы поговорим о разных реализации … Помечено Python, производительность, управление.

Вы прочитали это правильно. Это все о реализации. Сегодня мы поговорим о различных реализациях Python. Голова на разных видах, будь то Cpython, Brothon, вы называете это. Это в сочетании со своими основными преимуществами, по сути, вариант VS вариант B. Я на некоторое время вы были в игре, я уверен, что вы слышали имя или два всплывающих. Давайте погрузимся немного глубже.

Первое, что первый, однако, заметка

Язык – это одно, реализация – это другая.

В основном то, что это значит, что яйцо и торт не одинаковы. Один исходит от другого.

Python в качестве языка интерпретируется, реализация, однако, почему у нас есть эта статья.

Cpython.

Реализация C Python. Реализация де-факто, я уверен, что у вас есть И это Cpython И не Cython что что-то совершенно другое. Вы видите, когда вы запускаете простой сценарий Python для печати, скажем, Привет мир , это то, что происходит на заднем плане; Программа скомпилирована в Bytecode и интерпретируется. Компиляция создает * .PYCH Файл, короткий для «Python Compabled» файл, который вы можете поставить его. Вы не увидите этот файл, хотя и удален, когда программа выходит. Однако в более крупных проектах вы можете заметить здесь и там * .PYC файлы. В этом случае рассматриваемый проект, один раз, когда-то запуска, будет использовать PYC Файл, который, очевидно, намного быстрее, так как нет необходимости скомпилировать его, а затем запустить его, вместо этого.

Как несколько разная реализация Cpython, у нас есть Crossthwine Linker . Это был бы медведь, если бы я не упомянул об этом под Cpython. По умолчанию Python медленно, чем больше, скажем, проект. Это приписывается динамической печати (не нужно определить тип переменной при инициализации). Вот где приходит Кроссвин. Дарить питон маленький сок. Как это происходит точно, является упаковкой Cpython со своими собственными дополнительными библиотеками, они, конечно, скрытыми от общественного вида.

Обратите внимание на сравнение на скоростях во время выполнения. Нижнее, конечно, быть лучше. Ооо, какая сила!

Ух ты! Так почему я не слышал об этом? Ммм … Возможно, потому что это коммерческий? Вы должны платить за использование. Вы можете, конечно, абсолютно пойти на свои полные детали в Страница Crossthwine . Если вы думали, что все было в порядке со скоростью, то Woosh, вы находитесь за нарушением.

бритт

Вы когда-нибудь хотели пропустить запись JavaScript на стороне клиента? Полное раскрытие, у меня есть. Переключение контекста иногда захватывает. Подлый маленькая вещь. БРИТОН , позволяет писать код Python непосредственно на браузер. Как приветствует пример мира:

# create a pop up with information fed into the HTML5 input field
from browser import document, alert

def echo(ev):
    alert("Hello {} !".format(document["zone"].value))

document["test"].bind("click", echo)

Для списка нескольких разговоров, событий и так далее или даже jumpstarts на Brithon вы можете взглянуть на их вики Отказ

Ironpython

Тот же Python, с реализацией C #, позволяя вам запустить код на общий язык Microsoft. Так зачем нам Ironpython? Мой взять было бы, среди прочего, избегая Блокировка глобального переводчика Отказ Короче говоря, GIL предотвращает вашу обычную установку Python от полностью многопроцессора. Забудьте о под капоту похоронить вашу голову в песке многопоточье. В этом случае мы говорим о том, чтобы принять все преимущества разных процессоров, работающих на разных вещах одновременно. Это позволяет нескольким резьбовым коде для использования многоядерных процессоров. Держись за минуту, прежде чем идти сюда, хоть, вы можете взглянуть на предыдущий разговор, Если вы не знаете об этом, вам это не нужно Отказ Если вы являетесь человеком .NET, это было бы вашему GoTo. Интегрируйте два вместе и сделайте немного хорошего достойного супа. Определенно стоит усилия. Когда начать? Почему не их Официальная страница ?

Jython.

Суета месяца, Jython Отказ Реализация Java Python предназначалась, чтобы быть дополняющим, вы догадались, что это Java. Повторите после меня и скажу дополнительное! Не ходите туда одностороннее. Так же, как Ironpython Это позволяет вам встраивать сценарии в этом случае в систему Java, что позволяет играть с вашей программой Java практически аналогичным образом, как интерактивная оболочка Python. Таким образом, вы можете использовать Java в коде Python или Vise Versa. Ваш код Python будет производить Java Bytecode, который будет, в свою очередь, запускается на JVM (виртуальная машина Java). Я предполагаю, что мы все знаем, как Java Bytecode, когда-то скомпилирован, портативно по всей величине устройств, уже имеющих эту поддержку.

Выпивка

Я думал, что я просто начну с легкой сравнением выпивки с Cpython.

Теперь, вот где мы говорим о Машинный код ; Причина, почему C оставалась большим человеком на детской площадке. Все сводится к этому. Например, вы видите, в отличие от байткода Java, C будет составлять машинный код, прямой язык ЦП. Таким образом, нет посредников. Это бум и хлопок.

Простой аналогию было бы сказать, что машинный код – это ваша операционная система, а Bytecode является операционной системой на виртуальной машине. Одна с одной стороны, у вас есть то, что напрямую связано с вашим компьютером, а на другой у вас есть небольшой слой перед фактическим аппаратным оборудованием.

Эта скорость является причиной, почему многие библиотеки данных, например, Scipy или Numpy записываются в C. Позвоните в Pypy чит-лист. Итак, если, например, у вас есть два модуля Python, и один из них может быть импортирован, чтобы быть использованным где-то еще, Pypy Обратите внимание на это, поверните его в машинный код и кэшируйте это, так что в следующий раз, когда вы им импортируете, вы больше не имеете дело с кодом на верхнем уровне сами по себе, скорее сообщив ЦП: «Помните, что мы сделали? “

Просто как быстро мы говорим? Вы можете увидеть на Pypy Site, как их Тщательно продуманный пример Аналогичная программа, написанная в C и Pypy, Pypy Beat C на 50%! Целый на 50% быстрее, чем C для этого использования!

Если бы только пожелания были лошадьми, хотя. Несмотря на его низкое использование памяти, скорость и микрорез, Pypy имеет свои слабости. Для одного, это реализовано в Python (странно, я знаю). Это означает, что в то время как Cpython наслаждается океаном модулей, написанных в C, Pypy сидит в сторонах. Пример, pygame. Поэтому, хотя вы можете найти Django, чтобы быть быстрым молнией в некоторых случаях при использовании Pypy, управление базой данных может быть противоположным, так как большинство библиотек баз данных были написаны в C. Немного терпения необходима здесь. Мы просто не можем иметь все это!

Есть многочисленные другие реализации Python, но эти вершины списка. Так что идите и выбирайте мудро! Вот и все сейчас. Обратитесь в раздел комментариев в отношении того, к чему вы пойдете. до следующего раза ; Гринсенды Отказ

О, и вы можете получить нас в нашей ручке Twitter: Гринсенды Отказ

Оригинал: “https://dev.to/marvinkweyu/a-dive-into-python-implementation-587m”