ВКонтактовские "олимпиадники"-чемпионы ACM разработали крайне интересную высоконагруженным сайтам технологию. На пару уровней абстракции выше, чем Nginx (другая отечественная разработка для нагруженных проектов), может появится новый компилируемый язык.
В конце мая мы завершили перевод всего кода ВКонтакте на компилируемый язык программирования, который разрабатывали более года, — KPHP. В результате практически все страницы сайта стали грузиться более чем 2 раза быстрее.
На изображениях видно среднее время создания страниц нашими серверами до и после их перевода с PHP на KPHP. KPHP поддерживает большинство стандартов обычного PHP, но работает значительно быстрее. Позже мы предоставим код KPHP в открытый доступ для всех разработчиков мира.
В 2010-м году своя технология компиляции PHP выходила под маркой Facebook. Дуров обрисовал хабраюзеру Teodorix отличия от неё:
Либо Facebook дал в общий доступ сильно испорченную версию, либо мы разработали нечто принципиально лучшее. Это касается не только скорости работы скомпилированного кода, но, в первую очередь, скорости компиляции. Если там на некоторых тестах можно ждать окончания компиляции полчаса, то у нас весь код ВКонтакте компилируется распределённо меньше, чем за минуту. Плюс, там есть дополнительные встроенные возможности оптимизации.
К сожалению, летний спад посещаемости не даёт возможности оценить влияние запуска новой технологии внутри ВК на привязанность пользователей, однако картинки производительности, показанные Дуровым, в любом случае выглядят впечатляюще и вряд ли останутся незамеченными как в офисе FB в Калифорнии, так и в российских компаниях вроде "Яндекса" и Mail.ru.
Публикации о таких инновациях внутри ВКонтакте приходятся на тот период, когда самому ВКонтакте и его сотрудникам светит отличная возможность оказать поддержку укреплению обороноспособности страны в виде несения срочной службы в "беспилотных войсках Российской Федерации".
Напомню: тема привлечение ("призыва") талантливых программистов ИТМО на службу в армию с целью создания беспилотных летательных аппаратов стала практически дежурным разговором между Владимиром Путиным и Сергеем Шойгу. Желание "найти и посотрудничать" с талантами — самое мягкое, что было озвучено президентом и министром обороны. Как вы думаете, сколько сотрудников ВКонтакте, обладающих программистскими талантами, не достигли ещё возраста в 28 лет?
Вряд ли мысли о том, что часть сотрудников соцсети может проследовать из ВК в ВЧ являются приятными для Дурова — безусловно, для ВКонтакте куда лучше, если сотрудники, во-первых, останутся на гражданке. И, во-вторых, если им даже не придётся думать о возможности возникновения проблем с вооруженными силами РФ — всем будет проще и спокойнее.
Оригинальные технологии быстрого обслуживания огромного числа пользователей в какой-то степени могут быть "разменной монетой". Формально, десятки миллионов россиян — это не только пользователи соцсети, но и получатели госуслуг в современных цифровых форматах. Авторы прорывных веб-технологий или даже госсайтов, сервисов для миллионов, при благоприятном для ВКонтакте наклоне башен Кремля, вполне могут считаться несущими альтернативную "гражданскую службу".
“Именно тогда мы завершили перевод всего кода ВКонтакте на компилируемый язык программирования, ***— KPHP” “Из минусов — поддерживается не весь синтаксис PHP” Простите, я не понял, они разработали новый язык программирования или усечённый компилятор для PHP? Два диаметрально противоположных утверждения. Хотелось бы что бы технические вопросы оглашало лицо компетентное в этих вопросах. Понятно, что нежен «вау эффект», но если вспомнить про «антивирус Бабушкина», или новую ось «BolgenOS», то я как то скептично отношусь к таким утверждениям. Так же смущает, что их KPHP даёт всего лишь двух кратный прирост производительности. Конечно “Hip Hop” от Facebook это довольно неуклюжее животное, но это животное давало в 6-8 раз большую производительность, чем интерпретатор PHP. В php есть экспериментальное расширение для компиляции,(пруф искать лень, но в доках на php.net он есть). P.s. Вообще не понимаю почему гении-олимпиадники пишут HighLoad на PHP.