BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 静的な型付けによる高パフォーマンスなPHP

静的な型付けによる高パフォーマンスなPHP

原文(投稿日:2013/05/29)へのリンク

PHP+QBは、PHP用の代替の仮想マシンで、パフォーマンスで大幅な改善がされる、と言っている。欠点は、あらゆるものが静的に型付けされる必要があり、配列に厳しい制限がつくことである。

静的な型宣言がPHPDoc シンタックスへの拡張を介して追加された。 “@engine qb”のタグが付いたメソッドは、PHP+QB VM上で実行されるべきであることを示している。次に普通のPHPDoc シンタックスを使って、返り値、パラメータ、グルーバル変数に型でタグ付けする必要がある。ローカル変数は、@localを使って宣言される。

 

PHP+QB の配列は、普通の PHP 配列と似ていない。ドキュメントによると

PHPの配列は、高度なデータコンテナだ。その中に何でも入れることができる。要素は、テキスト文字列または数字で参照することができる。異なる要素が実際には同じオブジェクトである可能性がある。配列も、それ自体を持つことができる。非常に複雑かつ有用な構造は、PHPの配列を使用して構築することができる。このパワーと柔軟性は、しかし、コストがタダではない。何百万に番号付された要素を操作するときのパフォーマンスとメモリのオーバーヘッドが耐え難いほど高くなる可能性がある。

それに比較して、PHP + QBの配列は非常に単純だ。それらは、一般的にC-配列と呼ばれているものだ。本質的には、PHP + QBの配列は、単にメモリの塊である。その要素は、単に順番に格納されている。数値インデックスのみを使用してそれらを参照することができる。通常のPHPと違って、挿入の順序は、PHP + QBでは関係ない。PHP + QBでのforeachループ内では、 $array[0] はいつも$array[1] の前にくる。

PHP+QB の配列は、固定サイズでも拡張可能にもなる。拡張可能配列は、要素が取り除かれた時に自動的に小さくならない。そのためには、unset()を呼ぶ必要がある。

エンジンは、符号付きと符号なし整数型の最大範囲を32と64ビット浮動小数点型と同様にサポートする。文字列は、整数の配列として表される。PHP + QBをサポートするためにタグ付けされたメソッドはまだ$this変数の属性にアクセスできるが、オブジェクトは、サポートされていない。

この記事に星をつける

おすすめ度
スタイル

BT