Python Digest #24: Grumpy, 5 причин не використовувати django admin, огляд фіч Python 3.6

11 січня 2017 15:12 comandante 782 0

Відео

  • Огляд нових фіч в Python 3.6



Статті


Релізи


Інструменти

  • Thonny - Python IDE для початківців


  • Grumpy - експериментальный Python runtime для мови Go

Однією з основних цілей проекту є забезпечення високого рівня сумісності з CPython і досягнення можливості застосування Grumpy в якості повноцінної заміни Python runtime для проектів на мові Python. Код транслятора написаний на мові Python.

Grumpy націлений на використання в якості прозорої заміни CPython 2.7 і дозволяє вирішити проблеми з поганою роботою CPython в умовах обробки масових паралельних запитів. Зокрема, однією з поставлених перед Grumpy завдань була оптимізація роботи API YouTube, написаного на Python. Grumpy не формує байткод і не використовує віртуальну машину. На виході генерується набір звичайних вихідних текстів на мові Go, які потім можуть бути перетворені в машинний код за допомогою штатного компілятора Go. В отриманих після компіляції вихідних текстах продовжують використовуватися специфічні для Python структури даних, але реалізація структур оптимізована для гарної масштабованості в умовах масової паралельної обробки даних.

Grumpy позбавлений ключової проблеми Python - GIL (Global Interpreter Lock), що не допускає паралельного виконання декількох потоків коду. Grumpy також використовує збирач сміття Go для управління життям об'єктів замість застосовуваної в Python системи на основі підрахунку посилань. У поєднанні з компіляцією в виконуваний код, подібні поліпшення дозволяють домогтися істотного приросту продуктивності. Рівень масштабованості Grumpy добре демонструє нижченаведений графік, що відображає результати проходження тесту продуктивності Fibonacci:

Grumpy


Інше

782 5

Схожі матеріали:

Коментарі:

Авторизуйтесь, щоб залишити коментар.