24 мая 2012 г.

High Performance Python (Ian Ozsvald)

После небольшого перерыва - продолжаем обозревать годные видео с различных PyCon`ов. На этот раз речь пойдёт о проблеме, которую питонисты поднимают неохотно, а зачастую даже избегают её, оправдываясь фразами вроде "зато разрабатывать быстро" или "зато код читабельный", или ещё что-то в этом роде. И проблема эта - производительность. Одна из немногих проблем, которая действительно имеет место и с которой мало кто знает как бороться.

Зато это знает Ian Ozsvald. На последнем американском PyCon`е он выступил, вероятно, с самым большим докладом (в двух частях, по 3 часа каждый), в котором достаточно подробно, пошагово, осветил современные и недорогие методы увеличения производительности Python-кода - от компиляции отдельно взятых модулей через трансляцию в C-код (небезызвестный проект Cython) до параллельных вычислений. В интерактивном режиме, докладчик вместе с аудиторией построчно улучшает скорость выполнения функции создания множества Мандельброта (в качестве образцово-показательного примера), постепенно увеличив её более чем в 50 раз. Да-да, время отработки уменьшилось с 50 до 0.7 секунд, на одном ядре. Потрясающий результат.

Докладчик занимается проблемой искусственного интеллекта, активно использует в своей работе numpy, поэтому для него скорость выполнения особо сложных вычислений стоит более остро, чем для рядового веб-разработчика. Но, тем не менее, целый ряд приёмов наверняка будет полезен многим питонистам, независимо от сферы применения языка. 6 часов видео осилить непросто, но это стоит ваших выходных :)




Комментариев нет:

Отправить комментарий