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

PHP New Generation

Anna | 29.05.2014 | нет комментариев
Немножко свободный перевод письма Дмитрия Стогова на internal рассылку PHP сообщества, написанного 5-го мая.

Для знающих меня людей не секрет, что совершенствование продуктивности PHP является моей основной обязанностью и пристрастием в Zend. Вообще, начиная с PHP 5.0 мы теснее шестикратно ускорили PHP в синтетических тестах и приблизительно дважды в реальных планах. Мы не прекращали улучшать ядро PHP и OPCache. Но все же, с релизом PHP 5.5 у нас не получалось крепко продвинуться дальше и совместно с остальным мы начали экспериментировать с администраторами памяти, спецтехнологией JIT и другими потенциальными решениями.

Я потратил дюже мгного времени экспериментируя с JIT, и даже сделал прототип прозрачного, основанного на LLVM, JIT компилятора встроенного в OPCache. Итоги для bench.php были замечательны (0,219 секунд вопреки 2,175 — десятикратный приход для PHP 5.5), но для реальных планов мы получили каждого-лишь пару процентов прихода продуктивности. Это принудило нас всмотреться глубже в колляции исполняемой среды и в то, что было по-настоящему бутылочным горлышком. Ясно, что виртуальная машина теснее была отлично оптимизирована, но она работала со конструкциями данных, непрерывно требующими выделение и освобождение памяти и подсчет ссылок на значения. Обыкновенное настоящее PHP приложение тратит приблизительно 20% процессорного времени в администраторе памяти, 10% при операциях с хэш-таблицами, 30% во встроенных функциях PHP и каждого-лишь 30% в виртуальной машине. Безусловно же мы пробовали JIT только для кода виртуальной машины и в большинстве случаев данный код все равно делал теже самые операции с памятью. Следственно мы решили сменить фокус и трудиться над этим огромным бутылочным горлышком. Идея состояла в изменении типов данных для оптимизации выделения кусков памяти. Это было дюже сложным решением, так как нам необходимо было начать большой рефакторинг и мы представления не имели повлияет ли он на что-нибудь вообще.

Я с радостью представляю вам итог нашей работы за последние четыре месяца. Это  рефакторинг ядра PHP, тот, что значительно повышает продуктивность и улучшает  использование памяти, и основное дает основа для больших совершенствований в грядущем, включая JIT. Я упущу технические детали (подробности опубликованы здесь wiki.php.net/phpng), но  если двумя словами, то мы изменили основа попытавшись сберечь огромную часть здания  без изменений. Теснее теперь новое ядро дает 10-30% прихода продуктивности  не только в тестах, но также и в реальных планах!

Некоторые тесты продуктивности:
Wordpress 3.6 – 20.0% прирост (253 vs 211 req/sec)
Drupal 6.1 – 11.7% прирост (1770 vs 1585 req/sec
Qdig – 15.3% прирост (555 vs 482 req/sec)
ZF test app – 30.5% прирост (217 vs 166 req/sec)

На некоторых приложениях мы получили итоги даже отличнее, чем в других реализациях PHP.
Было бы восхитительно, если другие люди проверят свои приложения и сравнят с их нынешней версией PHP.

Рефакторинг еще далек от заключения, так как упор делался на проверку будет ли вообще какой-то позитивный итог. Еще не все растяжения поддерживаются, некоторые тесты не проходят, и у нас так же есть уйма идей для последующих совершенствований.

Но как нам кажется, мы довольно уверены, Дабы открыть его для ривью, фидбека и поддержки сообщества. … Необходимо еще много сделать для поддержки всех растяжений PHP и продолжить добавочно улучшать ядро.

Испробуйте отрефакторенный PHP и дайте ваш фидбек по продуктивности, применению памяти и любым загвоздкам.
Ветку *phpng* дозволено обнаружить на php.net. Есть также немножко инструкций здесьwiki.php.net/phpng. …

Я хотел бы отдельно поблагодарить Xinchen и Nikita за существенную часть проделанной работы!

Я верю, что это новое ядро может сделать новую версию PHP, о которой мы так много говорим, гораздо увлекательней.

Каждому спасибо!

От себя хочу подметить, что на прошлогодней конференции devconf, Дмитрия спрашивали про JIT и он как раз рассказал про их не вовсе успешный навык с ним. Но это письмо дает нам осознать, что PHP все еще торт.

Также хочу подметить, что упомянутые Никита Попов (переводы его статей по php не однократно возникали на прогре) и Xinchen Hui (и его планы тоже светились на прогре) вовсе молодые парни, влившиеся в сообщество каждого пару лет назад. На таких энтузиастах держится не одно сообщество.

*Все ошибки в переводе либо опечатки, грамматику и орфографию присылайте в личку, спасибо!

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

Оставить комментарий
БАЗА ЗНАНИЙ
СЛУЧАЙНАЯ СТАТЬЯ
СЛУЧАЙНЫЙ БЛОГ
СЛУЧАЙНЫЙ МОД
СЛУЧАЙНЫЙ СКИН
НОВЫЕ МОДЫ
НОВЫЕ СКИНЫ
НАКОПЛЕННЫЙ ОПЫТ
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB