ホームページ >php教程 >php手册 >PHP7 RC7 リリース PHP5.6 の比較 クイック ソート 20000 データ パフォーマンス エクスペリエンスと新しい構文 Tryout_PHP チュートリアル_プログラミング テクノロジ

PHP7 RC7 リリース PHP5.6 の比較 クイック ソート 20000 データ パフォーマンス エクスペリエンスと新しい構文 Tryout_PHP チュートリアル_プログラミング テクノロジ

WBOY
WBOYオリジナル
2016-06-20 12:33:071225ブラウズ

最近、Zend の PHP7 は最終バグ修正段階にあり、RC7 がアップデートされました。Zend の公式発表によると、PHP7 のパフォーマンスは PHP5 シリーズのバージョンの約 2 倍であり、一部のバージョンでは改善されています。新しい構文が追加されました。PHP5 のパフォーマンスに影響を与えるいくつかの要素が削除され、主に次の機能が追加されました。

  • パフォーマンスの向上: PHP 7 は PHP 5.6 の最大 2 倍高速です 一貫した 64 ビットのサポート 64 ビットの一貫性のサポート 多くの致命的なエラーが例外になりました 古いサポートされていない SAPIS と拡張機能の削除 古いサポートされていない SAPIS と一部の拡張機能の削除 null結合演算子 (??) 結合比較演算子 (96b4fef55684b9312718d5de63fb7121) 戻り値の型 宣言は C 言語などと同じように表示されます 戻り値の型 スカラー型宣言 スカラー型定義 匿名クラス 匿名クラス 興味本位で PHP5 をインストールしてみました! .5 と PHP7 RC7 が同時にリリースされたので、それぞれ PHP7 のパフォーマンス向上と新しい構文を体験しました。 PHP7 のインストールと設定方法については、これ以上何も言う必要はないと思います。 。
    http://php.net/ php7 RC7 リリース公式アドレス
    https://wiki.php.net/rfc/scalar_type_hints_v5 PHP7 ウィキ



    1. PHP7 と PHP5.5 のパフォーマンス比較

    PHP7 のパフォーマンスは PHP5.6 と比べてどれくらい向上しましたか? ここでは、PHP のバージョン 5.5 を使用して比較します。私も同様です。 PHP5.6をインストールするのが面倒です。
    以下に示すように、php7 および php5.5:

    1.1 ここでは、PHP をテストするために小さな愚かなコードを使用しています:

    <!--?php
    function microtime_float()
    {
    	list($usec, $sec) = explode( , microtime());
    	return ((float)$usec + (float)$sec);
    }
    define("ARRAY_SIZE",20000);
    function QuickSort($arr,$low,$high)
    {
     if($low-->$high)
       return ;
     $begin=$low;
     $end=$high ;
     $key=$arr[$begin];
     while($begin<$end)
     {
    	while($begin<$end&&$arr[$end]>=$key)
    	   --$end ;
    	$arr[$begin]=$arr[$end];
    	while($begin<$end&&$arr[$begin]<=$key)
    	  ++$begin;
    	$arr[$end]=$arr[$begin];
    	
     }
      $arr[$begin]=$key;
      QuickSort($arr,$low,$begin-1);
      QuickSort($arr,$begin+1,$high);
    }
    $time_start = microtime_float();
    $arr=array();
    for($i=0;$i</array_size;$i++)>

    1.2 テスト結果

    PHP7 と PHP5.5 でそれぞれ 20,000 個のランダム データを実行した後のクイック ソート アルゴリズムの結果は、PHP7 が PHP5.5 の 12 倍でした!!!! PHP7 は普及し始めているようです。
    以下は、上記のクイック ソート 20000 データ アルゴリズムを実行する PHP7 RC7 および PHP5 の速度です。




    2. PHP7 の新しい構文エクスペリエンス

    2.1、スカラー型と強い型

    PHP7新增四个标量类型 intfloat stringbool, 首先要使用强类型 必须在文件中加入指令

  • いわゆる厳密な型付けと強い型付けの概念は、PHP 自体が型付き言語であることがわかっているため、PHP 5.6 より前では型の概念を放棄する必要があるということです。型チェックは PHP 言語につながります。php7 のパフォーマンスが非常に低いこともこの点を証明しています。たとえば、次のコードは、 declare(strict_types=1)该指令必须是第一个指令而且只有一种用法
    <!--?php
    declare(strict_types=1);
    function GetInt():int{
      return 1.0;
    }
    echo GetInt();
    ?-->
    上記のコードを return 1; に変更すると、正常に実行できますが、それ以外の場合は、PHP7 の強い型制約により、if 型は完全に放棄されます。
    <!--?php
    declare(strict_types=1);
    function GetInt():int{
      return 1;
    }
    echo GetInt();
    ?-->

    2.2 強い型パラメータ

    <!--?php
    declare(strict_types=1);
    function add(int $a,int $b):int{
    	 return $a+$b;
    }
    echo add(1,2);
    ?-->
    var_dump の結果は int(3)
    <!--?php
    declare(strict_types=1);
    function add(int $a,int $b):int{
    	 return $a+$b;
    }
    var_dump(add(1,2));
    ?-->
    です
    2.3 戻り値の型の競合

    戻り値の型が強い型制約と異なる場合、例外がスローされます。

    <!--?php
    declare(strict_types=1);
    
    function foobar(float $abc): int {
        return ceil($abc + 1);
    }
     try{
    	foobar(1.22);
     }catch(Exception $ex){
    	 echo $ex--->getMessage();
     }
    
    ?>
    さて、Scalar Typeについてはいちいち書きません
    詳細については、https://wiki.php.net/rfc/scalar_type_hints_v5#php_rfcscalar_type_declarations
    を参照してください。

    2.4、PHP の匿名クラスについて

    単純な匿名クラスの継承
    <!--?php
    declare(strict_types=1);
    class Foo {public function M1(){echo "hello,world!";}}
    $child = new class extends Foo { public function M2(){echo "hello,world!";return $this;}};
    $child--->M2()->M1();
    ?>

    単純な匿名クラスのインスタンス化
    <!--?php
    declare(strict_types=1);
    var_dump(new class(5) {
        public function __construct($i) {
            $this--->i = $i;
        }
    });
    ?>














声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。