1 zval はスタック メモリを使用します
Zend エンジンと拡張機能では、多くの場合 PHP 変数を作成する必要があり、最下層はzval ポインタ。以前のバージョンでは、MAKE_STD_ZVAL を使用して、ヒープから zval メモリを動的に割り当てていました。 (推奨される学習: PHP ビデオ チュートリアル )
PHP7 はスタック メモリを直接使用できます。 PHP コードで作成された変数も最適化されており、PHP7 は zval をスタック メモリに直接事前に割り当てます。これにより、多くのメモリ割り当てとメモリ管理操作が節約されます。
2 番目の zend_string にはハッシュ値が格納され、配列クエリでハッシュを繰り返し計算する必要がなくなりました。
PHP7 は、char * ポインターに加えて、zend_string という文字列の新しい型を作成します。さらに、文字列のハッシュ値を保存するためのハッシュ フィールドが追加されます。
配列は PHP の中核となるデータ構造です。多くの場合、PHP プログラムでは $array[$key] 操作が多数使用されます。ハッシュテーブル検索の時間計算量は O(1) ですが、$key はハッシュに変換されるため、値を計算する必要があります。
配列操作だけでなく、実際には、PHP の最下層は、クラス属性、クラスメソッド、関数にアクセスするときに、まずハッシュテーブルを通じて対応するポインターを見つけてから、対応する操作を実行する必要があります。 PHP7 より前は、Zend エンジンはハッシュ値の計算に多くの CPU 時間を使用していました。
実際、PHP プログラムの実行後、ほとんどの場合、$key の値は変更されません。 PHP7 ではハッシュ値を保存し、次回から直接使用するため、多くのハッシュ計算操作が節約され、PHP のハッシュテーブルのパフォーマンスは C 配列のパフォーマンスと一致します。
データを 3 つのハッシュテーブル バケットに直接保存します。
PHP5 のハッシュテーブルの各要素はバケット* ですが、PHP7 はバケットを直接保存するため、メモリ アプリケーションの数が減り、キャッシュが向上します。ヒット率とメモリアクセス速度。
4 つの zend_parse_parameters をマクロ実装に変更
PHP の C 拡張関数と PHP の変数の間にパラメータを入力する場合は、zend_parse_parameters() 関数を使用します。 a string パラメーターは、PHP に対応する zval ポインターを検索し、それを割り当てます。実際、この関数には一定のパフォーマンス コストがかかります。
PHP7 はマクロを直接使用して zend_parse_parameters 関数を置き換えます。C 拡張機能では、パラメータを 1 つずつ検索するために zend_parse_parameters を使用する必要はなくなりました。パラメータの割り当てはマクロ展開後に自動的に実装されます。これだけでパフォーマンスが 5% 向上します。
5 4 つの新しい OPCODEs
多くの PHP プログラムは、call_user_function、is_int/string/array、strlen、定義済み関数を多数使用します。 PHP5は拡張関数の形で提供されており、PHP7のこれら4種類の関数は、より高速に実行できるZendVMのOPCODE命令に変更されています。
6 その他のさらなる最適化
上記の 5 つの主要な最適化ポイントに加えて、PHP7 には他のより詳細なパフォーマンスの最適化があります。
以上がphp7 ではどのような最適化が行われましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
