Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

О kPHP: как котята ускоряют ВКонтакте

Anna | 31.05.2014 | нет комментариев

Привет, прогровчане. Про kPHP от ВКонтакте теснее многие поспели прочитать и в прошлом топике, и где-то ещё, но деталей, безусловно, пока было немного. Для удовлетворения собственного любопытства и интереса со стороны сообщества, мы обратились за комментариями к первоисточнику, то есть Павлу Дурову, тот, что порекомендовал мне побеседовать о kPHP с ребятами из команды — Олегом Илларионовым и Василием Бабичем, которые отвечали за перенос ВК на рельсы свежей разработки.

Первым делом я задал те вопросы, которые звучали в комментариях к анонсу: что с ООП, кто стремительней — слон либо кит Java C# Go либо kPHP, в каких планах kPHP будет особенно пригоден и так дальше. Помимо того, мы побеседовали о планах становления и, немножко, о других разработках и «кодовой» кухне ВК.

Олег, Василий, здравствуй. Выходит, что же такое kPHP? В чём его суть?

Олег Илларионов:

Здравствуй! kPHP — транслятор PHP в С , тот, что, в том числе, анализирует код, выводит типы переменных, а там, где однозначно вывести не удалось — использует универсальные переменные, в которых могут храниться данные всякого типа.
Безусловно, kPHP это не штука которая скомпилирует всякий PHP-код и он будет трудиться — на деле kphp дюже отличный статический анализатор кода, тот, что находит ошибки, как потенциальные так и фактические. Кстати, при переводе сайта (речь идёт о ВКонтакте) даже было запущено несколько маленьких новшеств, которые были сделаны давным-давно, но из-за багов в коде не стали доступны широкой публике.

Много вопросов связано как с помощью основных способов PHP, так и с ООП. Помимо теснее озвученного — как о эталоне, так и об ограниченной поддержке ООП, можете что-то добавить?

ОИ:
В kPHP Есть большая масса каждого, даже вещи которые мы (ВКонтакте) не используем, но пока что нет некоторых дюже серьезных штук — скажем, DOMDocument.
Что касается ООП, то на данный момент оно в kPHP не поддерживается, за исключением нескольких стандартных объектов PHP. Одной из задач при переводе сайта на kPHP было полное освобождение от ООП. Но это неимение было сделано скорее как фича, основным вектором при разработке kPHP была скорость, Это играет не в пользу поддержки ООП и, помимо того, ООП классен в первую очередь тогда, когда у вас на плане есть сотня разработчиков либо в нём обилие интерфейсов.

В комментариях прозвучал типичный вопрос: «стремительней ли kPHP чем Java C# Go»? 

ОИ:
Зависит от того, что именно тестировать и от того, как написать код. С kPHP дюже увлекательно: скажем, скорость зависит от того, как именно он выведет тип отдельных переменных. Вообще, kPHP планировался как несовместимый с PHP язык, там есть ряд конструкций, которые, скажем, разрешают очевидно задавать типы переменных, Дабы ускорить выполнение. Но из-за того, что у нас много кода (скомпилированный бинарник весит около 300 мегабайт), компиляция занимает не считанные секунды, как планировалось, а минуты — невзирая на то, что kPHP перекомпилирует только изменившуюся часть кода — доводится разрабатывать фичи на обыкновенном PHP, и это пока что не разрешает нам применять все превосходства.

Василий Бабич:
Сопоставление с Java C# Go трудное — скорость kPHP, как теснее подметил Олег, дюже зависит от кода, тот, что им компилируют — если он отличный, то скорость работы крепко выше, чем у Java / C# — реально, это чистый С . А вот если код не дюже отличный, то работает понеторопливей. Вероятно, если дюже постараться, то дозволено придумать синтетический пример, где код подобный, но kPHP работает неторопливей — но мы такой целью не задавались :)

Мы теснее видели прекрасные графики убыстрения загрузки основных страниц ВКонтакте вследствие переходу на kPHP. А какие ещё выгоды может принести применение kPHP?

ОИ:
Значительное превосходство в применении памяти.

ВБ:
Да, с kPHP гораздо поменьше применение процессора и оперативной памяти. Насколько я знаю, мы стали применять примерно в два раза поменьше серверов для обработки запросов, при том, что они занимаются не только этим — на них еще какие-то системы изредка работают, как бы memcache. Безусловно, kPHP в первую очередь предуготовлен для highload-планов, что не изумительно, рассматривая те задачи, для решения которых мы ведём его разработку.

Некоторые прогровчане скептически отнеслись к двойному приходу

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB