2015 年の夏は暑くありませんが、インターネット技術の夏は他のどの年よりも暑いです。
5 月末に NetEase、Alipay、Ctrip および多くのクラウド ストレージ メーカーが相次いで失敗したという悪いニュースが終わったばかりですが、6 月初めにプログラミング言語の世界に 2 つの良いニュースがもたらされました。 Swift 2.0 とそのオープンソースのリリース もう 1 つは、PHP 7 アルファ版が正式にリリースされたことです。これら 2 つの主要なイベントは、対応するプログラミング言語で記録できる歴史的なイベントです。
この記事の焦点は、Niao Ge と他の偉大なマスターによって 2 年間磨き上げられた PHP 7 を皆さんに見ていただき、それが本当に前述したほど横暴であるかどうかを確認することです。前に。既存のソフトウェアと拡張機能の互換性もテストします。
PHP7 のインストールには下位互換性があり、ダウンロードして解凍し、以前の設定コマンドを使用して、何の抵抗もなく Enter キーを押し続けます。既存の環境の動作に影響を与えないように、すべてのディレクトリが特別に開かれています。
設定パラメータは次のとおりです:
<br /> --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
インストール後、ソフトリンクを作成します:
<br /> ln -s /usr/local/php7/bin/php /usr/bin/php7 ln -s /usr/local/php7/bin/php-config /usr/bin/php7-config ln -s /usr/local/php7/bin/phpize /usr/bin/php7ize ln -s /usr/local/php7/sbin/php-fpm /usr/sbin/php7-fpm
<br /> [root@localhost test]# php7 -v PHP 7.0.0alpha1 (cli) (built: Jun 13 2015 11:33:39) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
最初に行うことはパフォーマンス評価とCapital Online Cloud Host、4 コア CPU Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz、メモリ 4G、オペレーティング システム Centos 6.5。
私は 3 つのプログラムをランダムに書きました:
最初の段落では、600,000 要素の配列を生成し、キーを検索することでキーが存在するかどうかを判断します。
起動するとすぐに、PHP7 で実行すると、応答時間が元の 1/4 に短縮されました。本当にすごい!
その後、さらに 2 つ試行する必要があります。2 番目の段落は上記と同じですが、処理が遅いため、値を見つけるのに 60,000 個の要素の配列が必要になります。
コードは次のとおりです:
<br /> <?php $a = array(); for($i=0;$i<600000;$i++){ $a[$i] = $i; } foreach($a as $i) { array_key_exists($i, $a); }
くそー、何かあるのか!速度は約7倍に向上しました。
著者の興奮は言葉では言い表すことができず、比較的効率的な素数アルゴリズムを作成しました。 2,000,000 以内の素数の数を計算します
今回は PHP7 から始めます。
<br /> [root@localhost test]# time php search_by_key.php real 0m0.389s user 0m0.337s sys 0m0.051s [root@localhost test]# time php search_by_key.php real 0m0.378s user 0m0.308s sys 0m0.062s [root@localhost test]# time php search_by_key.php real 0m0.378s user 0m0.317s sys 0m0.061s
速度は1.2Sで安定しています
PHP 5.3に関しては、今回は前回よりも差は小さくなりましたが、PHP7も3~4倍の速度になっています。
この時点で、問題は基本的に説明できます。これらのコードは複雑な関数ライブラリを使用しておらず、大量のネットワークと IO も必要としませんが、パフォーマンスは少なくとも 3 倍最適化されています。これは本当に歴史的な進歩です。これまでのパフォーマンス評価では、言語レベルのパフォーマンスが無視されることがよくありました。なぜこのように言えるのでしょうか? たとえば、XHProf には、組み込み関数や内部関数などを分析しないために使用される特別なオプションがあります。配列、日付などの関数。誰もがこの分野の改善の余地を見逃しがちであり、もちろん、普通の人がこの分野を改善することはできないため、HHVM が作成され、今日の PHP 7 に影響を与えました。
素数を見つけるためのアルゴリズムを取得したい場合は、Youcai.com の公開アカウントをフォローし、キーワード「素数」を入力して取得してください。
一連のテストの後、作者は PHP 7 についてもっと学ぶことに興味を持ちました。拡張機能といくつかの一般的なフレームワークがどのようにサポートされるかを確認したかったので、次の 4 つのテストを作成しました。
まず第一に、XHProf は、パフォーマンスの最適化に重点を置いているアーキテクトとして、PHP 7 が登場し、XHProf がなくなることはありません。まだ 2013 年です。github からコピーをダウンロードする必要がありました。その結果、phpize はまだ問題なく、
configure はまだ問題なく、
make は問題ありませんでしたが、基礎となるデータ構造が悲惨なものになったようです。バード兄弟のアップグレードを楽しみにしています。
XHProfが使えないので、クラウドのXHProf OneAPMは使えますか?最近ではOneAPMが使われることが多くなってきていますが、自分でコードを埋め込んだり、余計な設定をする必要はありません。インストールの結果も悲惨です。解決できない場合は、ブラザー ニアオを PHP の技術コンサルタントとして雇ってください。すぐに解決できると思います。
拡張機能に関しては、よく使われる 2 つのものを紹介します。Web サイトは統一されていますが、それは世界中の誰もが知っています。もう 1 つは ThinkPHP です。これは中国で最も広く使用されている PHP 開発フレームワークであり、そのうちの 1 つではありません。筆者もTPのファンです。
これら 2 つのソフトウェアの優れた機能を賞賛すべきでしょうか? PHP 7 の互換性の良さを賞賛すべきでしょうか。それはわかりませんが、最初は正常でした。
PHP 7 が FastCGI バックエンドとして使用されている場合、Wordpress バックエンドは正常に実行されます。
ThinkPHP 最新バージョン 3.2.3 は PHP 7 で正常に動作します。
そうですね、週末の午後を PHP 7 をいじって過ごした後、私は PHP 7 のファンになりました。また、私たちの大規模な PHP が今後も中国のインターネット技術業界を席巻し、PHP 技術者はさらに優れたものになるだろうと考えました。もっと見る 欠品のため。また、より多くの PHP 技術者が言語と文法を学ぶだけでなく、より高いレベルに立って、ホワイトボックスの運用と保守を行い、パフォーマンスの最適化に重点を置き、フルスタックエンジニアになり、高給を獲得し、白人と結婚することを期待しています。 . 豊かに美しく、人生の理想を実現します。
OneAPM へのサポートと関心を寄せてくださった Youcai.com の友人に感謝します。 PHP 7 がリリースされた日に、OneAPM はすぐに PHP 7 をできるだけ早くサポートするためのバージョン アップデートを開始しました。正式バージョンは間もなく皆さんに提供されると思います。パフォーマンスの最適化とエラー監視のために、皆様が今後も OneAPM をサポートし、使用していただけることを楽しみにしています。