ホームページ  >  記事  >  バックエンド開発  >  新しいバージョンの PHP 5.3 の機能の簡単な分析 (1)_PHP チュートリアル

新しいバージョンの PHP 5.3 の機能の簡単な分析 (1)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:25:57883ブラウズ

php4 から php5 への発展、個人フレームワークからオープンソースフレームワークへの発展は、php の模倣品から正規軍への発展を目撃しました。 php6 はまだ作成途中ですが、php5 は php6 の小規模なテスト サイトとして機能すると思います。 php5.3 は php5 のマイルストーンであり、多くの新機能が追加されています。

私は個人的に、PHP にはますます多くの機能があると常に感じていますが、PHP の構文はますます醜くなっています。新しい関数が追加されると、問題を解決するために新しい構文が必要になります。落ち込んで、それを修正しに来てください。 PHP は構文を使用して問題を解決し、より適切に解析できると推定されています。

1. MySQL ドライバー mysqlnd

長い間、PHP は MySQL クライアントを通じて MySQL に接続してきましたが、現在 MySQL は MySQL クライアントの PHP バージョンを正式に開始しました。この MySQLnd はメモリ使用量を効果的に削減し、パフォーマンスを向上させます。 。詳細については、

http://dev.mysql.com/downloads/connector/php-mysqlnd/

http://forge.mysql.com/wiki/PHP_MYSQLND

新しいバージョンの PHP 5.3 の機能の簡単な分析 (1)_PHP チュートリアル

からわかるように図のように、mysqlnd を使用すると、mysql ドライバーから php 拡張機能にデータをコピーする手順が不要になります。 Mysqlnd はコピーオンライト、つまりコピーオンライトと読み取り参照を使用します。

mysqlnd は php5.3 のソース コードに組み込まれています。コンパイル時に --with-mysql=mysqlnd、--with-mysqli=mysqlnd、および --with-pdo-mysql=mysqlnd を使用して mysqlnd ドライバーをインストールします。

mysqlndの利点

phpをコンパイルする方が便利で、libmysqlは必要ありません、ソースコードにすでに組み込まれています

  1. phpをコンパイルする方が便利です、libmysqlは必要ありません、すでに構築されていますソースコードに埋め込みます
  2. 著作権の問題を回避するためにPHPライセンスを使用します
  3. PHPメモリ管理を使用し、PHPメモリ制限(memory_limit)をサポートします
  4. メモリ内のすべてのデータのコピーは1つだけです、以前のlibmysqlには2つのコピーがありました、上の図を参照してください
  5. ボトルネックの分析に役立つパフォーマンス統計関数を提供します
  6. Mysqli は永続的な接続をサポートします )
  7. パフォーマンスは libmysql よりも確実に高速です
  8. ドライバー層にキャッシュメカニズムを追加します

非常に多くの機能を確認すると、PDO が可能であることは少し矛盾しています。データベース抽象化レイヤーで、さまざまなバックエンドの特性を引き出しますか?データベースとして mysql を使用する場合、mysqli の方が良い選択ですか? mysqli は単なる過剰なプロダクトであり、PDO は未来であると常々感じています。

2. パフォーマンスの向上

  1. md5() により、おそらく 10% ~ 15% パフォーマンスが向上します
  2. エンジン内のスタック実装が改善されました。理解できません
  3. 定数が読み取り専用メモリに移動されました。理解できません意味はここにあります
  4. 例外処理が改善され、オペレーションコード(オペコード)がより簡潔になりました
  5. include(require)_onceを繰り返し開く問題を解決しました。以前は静的変数を使用して一度実装し、最終的にこの問題を解決しました
  6. gcc4でコンパイルしました。バイナリ ファイルが小さくなります
  7. 全体的なパフォーマンスが 5% ~ 15% 向上します

多くの人は Web のボトルネックは DB であると考えているため、アプリ アプリケーションのパフォーマンスは気にしていないと思います。 DB の拡張よりもアプリの拡張がはるかに簡単であることが主な理由ですが、これはアプリのパフォーマンスを無視できるという意味ではありません。高品質のコードは最も基本的な要件です。メモリ使用量が少なく、実行速度が速いプログラムは、同時実行性が高い場合に非常に効果的です。実装方法を変更すると、それが何十倍にもなるのが普通です。質の高いコードを書く意識が必要だと思います。

3. ?: 演算子

は、実際には js では || です。たとえば、false ?: 123 は true ではなく、元の変数の値を返します。構文が少し変です! 1

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446654.html技術記事 php4 から php5 への発展、個人フレームワークからオープンソース フレームワークへの発展は、php の模倣品から正規軍への発展を目撃しました。 php6 はまだ作成途中ですが、php5 は php6 の小さなテスト サイトとして機能すると思います。う…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。