こんにちは。トゥバン ラタンラウンドソファー 肘付き 1人掛け シンセティックラタン 屋外 背もたれクッション付き 完成品 ( ソファ チェアー イス 椅子 家具 人工ラタン バリ アジアン リゾート インテリア おしゃれ モダン アンティーク セミオーダー対応 )【TUSF-03】エンジニアのヒエイです。

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

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

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

目次

(まとめ) キヤノン Canon インクタンク BCI-7ePM フォトマゼンタ 0369B001 1個 【×10セット】_送料無料

富士通 ドラムカートリッジ CL115 イエロー トナーカートリッジ付属 0800420 1個 ds-2428367

【中古】中古部品 オッティ H92W 右ヘッドランプ 【3310550000-001423039010800】

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

Lexus 69350-0E020, Trunk ロック Actuator モーター (海外取寄せ品)

低価格 トナーカートリッジ045H 純正 CRG-045HYEL Canon 大容量タイプ(イエロー) 送料無料! CRG-045HYEL インクリボン ▼仕入先より直送!:指定日発送・同梱・ラッピング不可

PHPバージョン: 7.2

フレームワーク:CodeIgniter 3系

(まとめ) ナカバヤシ ノンフロンエアーダスター2WAYタイプ 390ml DGC-JB12 1本 【×10セット】開発初期

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

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

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

エラー修正

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

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

京セラ トナーカートリッジ シアン TK-5141C 1個より

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

 

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

非推奨
ETカートリッジ LPC3T10 ブラックお買い得2本セット【リサイクル品】【即日出荷】【送料無料】【LP-M6000/LP-S6000/LP-M60】

下位互換性のない変更点
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 TC-C4EC1 シアン リサイクルトナーカートリッジ【現物再生品】 ※使用済みカートリッジが先に必要になります 【沖縄・離島 お届け不可】 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が遅くなった印象。フレームワークやライブラリとの関連性もあるのでチューニング次第で変わりそうでした。

【GI GEAR (ジーアイ・ギア) 社製】トヨタ ランドクルーザー71・76・77 オージースタイル ルーフラック キャリアルーフキャリア カスタム パーツ カーパーツ カスタムパーツ 部品 改造AL コイルオーバー サスペンション ショック アブソーバー キット 適用: ダッジ/DODGE キャリバー 2007-2012 キャリバー SRT-4 調整可能 高さ AMI コイルオーバー AL-NN-5164

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

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

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

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

New Relic

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

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

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

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

低価格 トナーカートリッジ045H 純正 CRG-045HYEL Canon 大容量タイプ(イエロー) 送料無料! CRG-045HYEL インクリボン ▼仕入先より直送!:指定日発送・同梱・ラッピング不可

リリース後は富士通 ドラムカートリッジ CL115 ブラック トナーカートリッジ付属 0800410 1個 ds-2428366を徹底。テストで発見できなかったエラーが幾つか上がりhotfixの修正対応を行いました。

【純正品】CANON 3621C001 トナーカートリッジ059マゼンタ_送料無料

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

※内容は一部です

対象パス
PHP7と8の差分(ms)
改善%
/ -85 37.78%
/studio/.*$ -628 46.90%
/studio/.*/photo マックス ビーポップ インクリボン イエロー SL-R217Tイエロー IL90161 [21] 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$ 京焼 清水焼 花鳥古紋蓋付湯呑 瑞古 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 RICOH/リコー SP ドラムユニット ブラック C350 メーカー純正品 【沖縄・離島 お届け不可】
/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 JP-10 JP-500 i-50 インク リコー JP5550 JP-5600 黒 6本 汎用

ラダーラック 専用 ジョイントパネル(本体別売り) 幅80cm 日本製ラダーラック 突っ張り立体ラック ホワイト ナチュラル ブラウン 事務所 オフィス 突っ張りパーティション つっぱり おしゃれ ラダーラック 家具 壁面ラックまとめ

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

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

ぜひ、【純正品】 Canon キャノン トナーカートリッジ 【502 Y イエロー】使いながら開発を楽しんでゆきたいです。