PHPカンファレンス2020 レポート

PHPカンファレンス2020 レポート[後編]

この記事を読むのに必要な時間:およそ 5 分

清家史郎さん「PHP8はISUCONへの扉を開く鍵となるか」

Fusicの清家史郎さんは,ISUCONの利用言語にPHP8を採用できるかについて話しました

画像

ISUCONは,お題となるWebサービスをどれだけ高速化できるか競うチューニングバトルです。PHPはWebアプリケーションに広く浸透しているものの,ISUCONでの採用事例がかなり少ないようです。今年開催されたISUCON10では,PHPを採用したチームのうち本戦出場に勝ち進んだチームが1つしかありませんでした。しかし他に高速な言語がある中で,本線出場で1組勝ち進んだことはポジティブで希望の持てる事例であると紹介しました。

そしてPHP8がリリースされましたが,これがISUCONに参加するPHPerの武器になるのではないかと考えたそうです。

PHP8でISUCONに臨む壁

ISUCONの鉄則「推測するな,計測せよ」に則ってプロファイラーを導入した検証を試みた際の経験について話しました。清家さんの環境では,xdebug,blackfireをはじめとしたプロファイラーはJITを有効化するとSegmentation Faultで動作しなくなったようです。

100万個の要素をクイックソートでソートした場合の処理

PHP 7.3の場合,平均1467msですが,PHP8+JITの場合は平均400msと約3.6倍の速度改善が可能になりました。

ただし,通常のWebアプリケーションに導入するだけでは高速化は見込めないとのことです。データベースに接続するサンプルプログラムで同様に検証したところ,約5%の速度改善に止まりました。

PHPのJITは非常に強力な機能でPHPerの武器となりますが,清家さんは「銀の弾丸ではない」と述べていました。そして,⁠ISUCONで他の言語と戦えるのかという目線で見た場合,PHP8もGo言語に迫る勢いで高速化を実現している点に着目しており,PHP8をISUCONに使える可能性はあるため,PHP8でISUCONに優勝したい」と結びました。

イベントを終えて

PHP8が11月26日にリリースされたばかりということもあり,PHP8のセッションが盛り沢山でした。特に目玉機能であるJITに関して,各登壇者が詳細に説明していました。他にも,今回のカンファレンスを通じてPHPの新たな側面を知ることができたり,より深い理解を得ることができたりと,大変有意義な1日となりました。

今回は初のオンライン開催となりましたが,オフライン開催に無い良さとしてセッション中のDiscordが盛り上がったりと新しい形での盛り上がりを見せていました(各セッションの動画はYouTubeで閲覧できます⁠。

来年のPHPカンファレンスは10月2日,3日に開催される予定です。今回参加の機会を逃してしまい,この記事をご覧いただいている方が来年参加されるきっかけになれば大変嬉しく思います。

著者プロフィール

西祐太郎(にしゆうたろう)

株式会社アドベンチャーでエンジニアとして勤務。WordPressでPHPを触り始め,その後Laravel,独自フレームワークと複数のPHPプロジェクトを経験。最近は開発の傍ら,プロジェクトリーダーやエンジニア採用などにも携わる。レガシーコードのモダン化とマイクロサービスアーキテクチャにご執心。

Facebook:https://www.facebook.com/profile.php?id=100028405416669
GitHub:https://github.com/yuta-ron

バックナンバー

PHPカンファレンス2020 レポート