こんにちは。アヴィレックス ゴルフ AVIREX GOLF メンズ キャップ カモ柄キャップ サイズ調節可能 タイガーカモ総柄 立体ロゴ刺繍 ゴルフエンジニアのヒエイです。
Photoraitのアプリケーションでは言語にPHPを採用しています。
去年PHP8のメジャーアップデートがあり、PhotoraitでもPHP8にバージョンアップを行いました。
今回はバージョンアップへ向けてやったことと、リリース後のパフォーマンス結果を書きます。
目次
【★スーパーSALE★3/11深夜2時迄】エンジェル パンツ 橙 オレンジ レディース 【 ORANGE ANGEL MATERNITY LINEN PANT IN 】
OKIデータ トナーカートリッジ ブラック (大) TC-C4AK2
バイク用品 ブレーキ クラッチBERINGER ベルリンガー ワイヤークラッチホルダー TI ストリート4フィンガーCC-4T 4547567799610取寄品 セール
エプソン LPC3T18KPV LP-S7100/S8100用 環境推進トナー/ブラック/Mサイズ×2個 目安在庫=△
最高の品質 【業務用5セット】【純正品】 EPSON ×5セット ライトマゼンタ】 LM 【ICLM32 インクカートリッジ/トナーカートリッジ エプソン インクカートリッジ 注文個数が間違いないか、ご注文前にご確認ください。:確認しました
PHPバージョン: 7.2
フレームワーク:CodeIgniter 3系
CT202078 富士フイルム(富士ゼロックス) (CT202077の増量版) ブラック×3セット互換トナーカートリッジ 内容:CT202078 対応機種:DocuPrint P450 d / DocuPrint P450 JM / DocuPrint P450 ps 宅配便で送料無料【互換トナー】開発初期
開発サーバーを立てる前に、dockerでのPHP8のimageを使ってアプリケーション検証を行いました。
検証した内容は以下の事。
- 依存パッケージ検証
- composerパッケージバージョンアップ
- バージョン依存により利用パッケージ差し替えなど
- PHP8にしたことによるエラー修正
- パフォーマンス計測
エラー修正
8系にアップデートした事で発生したエラーや、テスト中に発見した既存バグ修正をただひたすら行いました。
- noticeエラーがwarningになったり、undefinedエラーも多数発見され修正作業。
- function内デフォルト引数
- 関数の引数にデフォルト値を設置する際、必須引数が後にある場合は非推奨になります。古いコードに少しあり修正をおこないました。
1 2 3 4 |
<?php function test($a = [], $b) {} // 非推奨 function test($a, $b) {} // 変更 ?> |
- implode構文エラー
- Panasonic 録画用6倍速ブルーレイディスク 25GB(追記型)スピンドル50枚 LM-BRS25M50Sではありましたが、8系はサポート終了しました。
1 2 3 4 5 |
// NG implode($array, ', '); // OK! implode(', ', $array); |
- 数値と文字列判定
- 数値と非数値文字列の比較判定が変わっています。
1 2 3 4 5 6 7 8 9 |
$condition = 0 // PHP7 【SALE】宅配ボックス RusuPo SHARE 集合住宅向け 架台タイプ 2段 500 ホワイト KD2-50CW 河村電器産業 高さ1300x幅450x奥行500mm 置き配 / ステンレス/ 防錆/ 防塵condition == '' // true // PHP8 $EPSON エプソン トナーカートリッジ 純正 【LPC3T17M】 マゼンタ == '' // false |
他8系にあたる変更点です。
非推奨
ナイキ NIKE ズーム スニーカー 【 AIR ZOOM SPIRIDON CAGE 2 PISTACHIO FROST METALLIC SILVER 】
下位互換性のない変更点
https://www.php.net/manual/ja/migration80.incompatible.php
ローカル環境でパフォーマンス計測
opcacheと、PHP8新機能JITも有効にしレスポンス数値を確認しました。
opcache・jitの有効
1 2 3 4 5 |
キャンプスCOB調光ランタンライト 36個セット販売 レトロフォルムに最先端の光源 明るいCOBの光を無段階に調光可能 COBタイプ 調光無段階 【名入れ可能商品 別途費用がかかります】 = opcache opcache.enable = 1 opcache.enable_cli = 1 opcache.jit = tracing opcache.jit_buffer_size = 128M |
レスポンス数値集計はApache Benchを利用。
1 |
ab -n リクエスト数 [全商品ポイント2倍! 3/4(金)~3/11(金)]BB-RKG-ARFH60L(R) リクシル LIXIL ピアラ専用ドア枠回避リフォームキット フルスライドタイプ/間口600mm用 ピアラ専用c 並列実行数 -l "https://local環境ドメイン.net/エンドポイント" |
PHP7.2(キャッシュなし) | PHP8.0.1(キャッシュなし) | PHP8.0.1(opcache) | PHP8.0.1(opcache・jit) | |
---|---|---|---|---|
Time taken for tests[sec] | 3.556 | ≪10月度 月間優良ショップ受賞≫【業務用】CRG-040HM(マゼンタ) キヤノン Canon 互換 トナーカートリッジ【インク革命】 | 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が遅くなった印象。フレームワークやライブラリとの関連性もあるのでチューニング次第で変わりそうでした。
【SSでポイント最大43倍】(業務用5セット) EPSON エプソン インクカートリッジ 純正 【ICM46】 マゼンタ【純正品】 KONICAMINOLTA コニカミノルタ トナーカートリッジ 【TCHMC1600M マゼンタ】 大容量
開発サーバーを立て、検証をスタートさせます。
サーバー立ち上げ時にPHP8のマイナーアップデートが随時リリースされ、採用バージョンも更新を行っていきました。
composerパッケージでも、バージョンアップ開発スタート時には8系に非対応だったものも随時アップデートがリリースされてゆくことも多かったです。
CodeigniterでのPHPunitジョイントツールのci-phpunit-testもその1つでした。
New Relic
Photoraitではサイトパフォーマンス監視にNew Relicを利用しています。
バージョンアップ対応途中、New RelicはまだPHP8対応されてない事が発覚。
開発陣で打ち合わせを重ね、New Relicを待たずバージョンアップリリースを先行しました。
PhotoraiチームはNew RelicのPHP8対応をとても心待ちにしております。
最高の品質 【業務用5セット】【純正品】 EPSON ×5セット ライトマゼンタ】 LM 【ICLM32 インクカートリッジ/トナーカートリッジ エプソン インクカートリッジ 注文個数が間違いないか、ご注文前にご確認ください。:確認しました
リリース後は【送料無料】【純正品】 RICOH リコー トナーカートリッジ 【C220 M マゼンタ】 SPトナー AV・デジモノ パソコン・周辺機器 インク・インクカートリッジ・トナー トナー・カートリッジ リコー(RICOH)用 レビュー投稿で次回使える2000円クーポン全員にプレゼントを徹底。テストで発見できなかったエラーが幾つか上がりhotfixの修正対応を行いました。
【レビュー記入で500円クーポン配布中】【単品】 カラーレーザートナー ブラザー カラーレーザートナー ブラック TN-491BK 4977766773188 ●対応機種:MFC-L9570CDW/MFC-L8610CDW/HL-L9310CDW/HL-L8360CDW●種別:純正
opcache・jitの効力もあり、大幅なレスポンス数値の改善が見られました。
※内容は一部です
対象パス |
PHP7と8の差分(ms)
|
改善%
|
---|---|---|
/ | -85 | 37.78% |
/studio/.*$ | -628 | 46.90% |
/studio/.*/photo | ディーズガーデン ガーデニンググッズ フラワーハンガー TypeA インサートナット取付セット DGG01D | 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$ | カーゴ ルーフ キャリア 貨物運搬船w / Hitch Pin付き1-1 / 4 "レシーバーCurt 18110 Cargo Carrier w/ Hitch Pin Fits 1-1/4" Receivers Curt 18110 | 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 | 青色 ブルー レディース 【 FP MOVEMENT SQUARE NECK GOOD KARMA BRA LIGHT BLUE 】 |
/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 | 【J-268842】【キヤノン】トナーカートリッジ CRG-303【トナーカートリッジ】 |
コフロック 表示器付ローコストマスフローメータ MODEL 3810DS[[R2]] SERIES 〔品番:3810DS2-O-I-RC1/4-O2-100SLM-0C〕[2010096]「送料別途見積り,法人・事業所限定,取寄」【代引き不可】まとめ
チューニングが施しきれていない部分もまだありますが、PHP8にして早速効果が出てきて嬉しいです。
またエラーが厳格化された事により古いコードの修正には手を焼きましたが、これからの開発では助かる事も多いと思います。
ぜひ、【代引不可】PP柄上敷 ガナッシュ 本間6帖 ブラウン 15242560「他の商品と同梱不可/北海道、沖縄、離島別途送料」使いながら開発を楽しんでゆきたいです。