新しいベンチマーク:メゾンルータ対PHROTE

8132 ワード

こんにちはすべて!時間は、私はPHYNEとメゾンルータを比較します.
いつものように2つのケースがあります.
  • HTTP Serverはリクエストを受け取り、このリクエストを処理するPHPスクリプトを起動します.以下のリクエストはすべて同じように処理されます.この場合、スクリプトをできるだけ早く起動することは非常に重要です.スクリプトが動作し終えると、すべてが失われるからです.
  • PHPスクリプトが起動し、すべての内部コンポーネントを起動します(そして、ルータはそれらのうちの1つです).このケースは、例えばPHPに反応することで組織化することができます.以前のケースとは異なり、高速処理の前コンパイルルートに合理的な時間を費やすことができます.
  • ファーストケース


    // static routes
    for ($i = 0; $i < \Mezon\Benchmark\Base::$iterationsAmount; $i ++) {
        $router = \Mezon\Benchmark\RouteGenerator::generatePhrouteStaticRoutes(1000);
    
        $router->dispatch('GET', parse_url('/static/' . rand(0, 1000 - 1), PHP_URL_PATH));
    }
    
    // non-static routes
    for ($i = 0; $i < \Mezon\Benchmark\Base::$iterationsAmount; $i ++) {
        $router = \Mezon\Benchmark\RouteGenerator::generatePhrouteNonStaticRoutes(1000);
    
        $router->dispatch('GET', parse_url('/param/' . rand(0, 1000 - 1) . '/1', PHP_URL_PATH));
     }
    

    二件目


    // static routes
    $router = \Mezon\Benchmark\RouteGenerator::generatePhrouteStaticRoutes(1000);
    
    $startTime = microtime(true);
    for ($i = 0; $i < \Mezon\Benchmark\Base::$iterationsAmount; $i ++) {
        $router->dispatch('GET', parse_url('/static/' . rand(0, 1000 - 1), PHP_URL_PATH));
    }
    return microtime(true) - $startTime;
    
    // non static routes
    // non-static routes
    $router = \Mezon\Benchmark\RouteGenerator::generatePhrouteNonStaticRoutes(1000);
    
    $startTime = microtime(true);
    for ($i = 0; $i < \Mezon\Benchmark\Base::$iterationsAmount; $i ++) {
        $router->dispatch('GET', parse_url('/param/' . rand(0, 1000 - 1) . '/1', PHP_URL_PATH));
    }
    return microtime(true) - $startTime;
    

    結果



    あなたが見ることができるように、メゾンルータはほとんどすべての場合、より速く、PHPROTEです.

    もっと学ぶ


    詳細はこちら
    Mezon Framework

    どのようなメゾン/ルータですか?


    メゾン/ルータは、現在です:
    100 %のコードカバレッジでルーティングのための
  • フレームワーク

  • scrutinizer CIの10.0ポイント.com
  • ルータはMezon Projectの一部です
    Githubについてコム:https://github.com/alexdodonov/mezon-router

    あなたがこのプロジェクトに何かを貢献するならば、それは素晴らしいです。ドキュメント、あなたのソーシャルメディア、バグ修正、リファクタリング、または質問や機能のリクエストで問題を提出するプロジェクトを共有する。どうもありがとう