こんにちは。【ふるさと納税】りんごの果実酒 滝沢ドライサイダー 6本・岩手の地ビール べアレン定番&季節限定ビール6本セットエンジニアのヒエイです。

Photoraitのアプリケーションでは言語にPHPを採用しています。

去年PHP8のメジャーアップデートがあり、PhotoraitでもPHP8にバージョンアップを行いました。

今回はバージョンアップへ向けてやったことと、リリース後のパフォーマンス結果を書きます。

目次

タイヤ Dunlop Geomax MX-3S 80 / 100-21フロントバイアスタイヤ51M TT KTM 150 XC-W TPI 2020 Dunlop Geomax MX-3S 80/100-21 Front Bias Tire 51M TT KTM 150 XC-W TPI 2020

CRG シーアルージー ブレーキレバー フォールディング 【LEVER BRAKE FOLDING】

Forza Motorsport 5 (輸入版:北米) - XboxOne

リリースとパフォーマンス計測

【SS対象クーポン配布中】【純正品】 EPSON エプソン インクカートリッジ 【ICY92L イエロー】 Lサイズ

【お買得!】 GSX-R1000、GSX-R750 09年-12年 ショート ブレーキレバー CRG シーアールジー 【USA在庫あり】 カーボン JP店 0614-0562 ブレーキレバー

PHPバージョン: 7.2

フレームワーク:CodeIgniter 3系

【純正品】 EPSON エプソン トナーカートリッジ 【LPC3T17YY イエロー】開発初期

開発サーバーを立てる前に、dockerでのPHP8のimageを使ってアプリケーション検証を行いました。

検証した内容は以下の事。

  • 依存パッケージ検証
  • composerパッケージバージョンアップ
    • バージョン依存により利用パッケージ差し替えなど
  • PHP8にしたことによるエラー修正
  • パフォーマンス計測

エラー修正

8系にアップデートした事で発生したエラーや、テスト中に発見した既存バグ修正をただひたすら行いました。

  • noticeエラーがwarningになったり、undefinedエラーも多数発見され修正作業。
  • function内デフォルト引数
    • 関数の引数にデフォルト値を設置する際、必須引数が後にある場合は非推奨になります。古いコードに少しあり修正をおこないました。

【雑誌付き】Dimotiv ボルトCスペック レバー TYPE-CU アジャストレバー ブレーキレバー カラー:チタンシルバー ディモーティブより

  • 数値と文字列判定
    • 数値と非数値文字列の比較判定が変わっています。

 

他8系にあたる変更点です。

非推奨
グッドイヤー ベクター Vector 4Seasons Hybrid オールシーズンタイヤ 205/65R16 KYOHO スマック ヴァルキリー ホイール 16インチ 16 X 6.5J +53 5穴 114.3

下位互換性のない変更点
https://www.php.net/manual/ja/migration80.incompatible.php

ローカル環境でパフォーマンス計測

opcacheと、PHP8新機能JITも有効にしレスポンス数値を確認しました。

opcache・jitの有効

 

レスポンス数値集計はApache Benchを利用。

 

PHP7.2(キャッシュなし) PHP8.0.1(キャッシュなし) PHP8.0.1(opcache) PHP8.0.1(opcache・jit)
Time taken for tests[sec] 3.556 電子辞書 EX-word(エクスワード) 生活・教養モデル 160コンテンツ シャンパンゴールド XD-SX6500GD 液晶保護フィルム貼付済モデル CASIO (カシオ) XD-SX6500-FM★ 1.193 1.146
Requests per second[#/sec] 14.06 10.46 41.92 43.63
Time per request[ms] 711.156 955.827 238.552 229.222
Time per request[ms]
(across all concurrent requests)
71.116 95.583 23.855 22.922

上記は一部のページで行ったテスト結果です。

ローカル環境でのテストではありますが、opcacheとjitの効力ありパフォーマンス改善が見られました。

PHP7.2と8系のキャッシュ無しの場合は、若干PHP8が遅くなった印象。フレームワークやライブラリとの関連性もあるのでチューニング次第で変わりそうでした。

新品◎◎トーヨー M319小型トラック用チューブレス 205/75R16 113/111N【ワンダフルデー!エントリーでポイント3倍!さらに当店ショップポイント2倍!】エプソン 純正インクカートリッジ IB02KA ブラック 5,800ページ

開発サーバーを立て、検証をスタートさせます。

サーバー立ち上げ時にPHP8のマイナーアップデートが随時リリースされ、採用バージョンも更新を行っていきました。

composerパッケージでも、バージョンアップ開発スタート時には8系に非対応だったものも随時アップデートがリリースされてゆくことも多かったです。

CodeigniterでのPHPunitジョイントツールのci-phpunit-testもその1つでした。

New Relic

Photoraitではサイトパフォーマンス監視にNew Relicを利用しています。

バージョンアップ対応途中、New RelicはまだPHP8対応されてない事が発覚。

開発陣で打ち合わせを重ね、New Relicを待たずバージョンアップリリースを先行しました。

PhotoraiチームはNew RelicのPHP8対応をとても心待ちにしております。

【お買得!】 GSX-R1000、GSX-R750 09年-12年 ショート ブレーキレバー CRG シーアールジー 【USA在庫あり】 カーボン JP店 0614-0562 ブレーキレバー

リリース後はバイク用品 ハンドルBEL-FAST ベルファスト クラッチホルダーセット HD汎用 96以降BCH-SET 4549950328827取寄品 セールを徹底。テストで発見できなかったエラーが幾つか上がりhotfixの修正対応を行いました。

OKIデータ 大容量トナーカートリッジ ブラック TNR-C4KK2 【代引決済不可】

opcache・jitの効力もあり、大幅なレスポンス数値の改善が見られました。

※内容は一部です

対象パス
PHP7と8の差分(ms)
改善%
/ -85 37.78%
/studio/.*$ -628 46.90%
/studio/.*/photo 三菱K VAPDM バイオレット高精度汎用加工用 ハイスドリル ミディアム 16mm VAPDMD1600 ▼161-6757 三菱マテリアル(株)【代引決済不可】 ●si517 39.82%
/studio/.*/plan -452 41.39%
/studio/.*/option -358 39.60%
/studio/.*/privilege -238 45.59%
/studio/.*/review$ -1208 72.73%
/studio/.*/review/.* -1298 70.62%
/studio/.*/kodawari/.* -323 47.99%
/studio/.*/experience$ -477 48.08%
/studio/.*/experience/.* -362 42.94%
/studio/.*/photographer/.* -547 58.19%
/studio/.*/dress$ towing hitch 商品ショーラーローローソール牽引牽引チプ - オリジナルの役職を表示 新品シボレーミラーロゴ牽引ヒッチカバープラグ- show original title 31.32%
/studio/.*/dress/.* -295 33.41%
/studio/.*/blog$ -432 54.00%
/studio/.*/blog/.* -646 55.88%
/search/area/.* -353 39.57%
/search/kodawari_search.* -239 ドライブシャフト 2004-2010 VW Touareg 3.6L V6 Gas 2008 2005 C894MRのためのドライブシャフトフレックスジョイントキット Drive Shaft Flex Joint Kit For 2004-2010 VW Touareg 3.6L V6 GAS 2008 2005 C894MR
/search/kodawari_introduction/.* -180 30.35%
/search/plan/result.* -301 37.25%
/search/photographer.* -107 34.19%
/search/resort$ -147 31.96%
/search/resort\?.* -217 36.29%
/search/photo/result.* -267 【送料無料】【純正品】 BROTHER ブラザー インクカートリッジ 【LC17-4PK】 大容量 4色パック AV・デジモノ パソコン・周辺機器 インク・インクカートリッジ・トナー インク・カートリッジ ブラザー(BROTHER)用 レビュー投稿で次回使える2000円クーポン全員にプレゼント

シャープ SHARP MXC30DRドラムユニット 各色共通 純正 MXC30DR、MX-C300W、MX-C302W 用ドラムカートリッジまとめ

チューニングが施しきれていない部分もまだありますが、PHP8にして早速効果が出てきて嬉しいです。

またエラーが厳格化された事により古いコードの修正には手を焼きましたが、これからの開発では助かる事も多いと思います。

ぜひ、(業務用3セット) EPSON エプソン インクカートリッジ 純正 【ICC90M】 シアン(青)M使いながら開発を楽しんでゆきたいです。