極端な高性能、ゼロ依存性、ゼロオーバーヘッド(C拡張機能をサポート)を対象としたPux(https://github.com/c9s/Pux)をチェックしてください。良好なパフォーマンスを提供しながら、独自のルーティングパスを定義するために、PUXもシナトラのようなAPIを提供します。
$mux = new Pux\Mux;
$mux->any('/product', ['ProductController','listAction']);
$mux->get('/product/:id', ['ProductController','itemAction'] , [
'require' => [ 'id' => '\d+', ],
'default' => [ 'id' => '1', ]
]);
$mux->post('/product/:id', ['ProductController','updateAction'] , [
'require' => [ 'id' => '\d+', ],
'default' => [ 'id' => '1', ]
]);
$mux->delete('/product/:id', ['ProductController','deleteAction'] , [
'require' => [ 'id' => '\d+', ],
'default' => [ 'id' => '1', ]
]);
$route = $mux->dispatch('/product/1');
ベンチマーク結果:
- 48.5x静的で「symfonyのルーティング/」よりも速く経路派遣。 (pux拡張がインストールされている)
- 正規表現のディスパッチで "symfony/routing"よりも31倍高速です。 (pux拡張がインストールされている)
- "klein"(pux拡張がインストールされている)よりも69倍高速です。
n=10000
Runing php array - . 138796.45654569/s
Runing pux - . 124982.98519026/s
Runing klein - . 1801.5070399717/s
Runing ham - . 13566.734991391/s
Runing aura - . 39657.986477172/s
Runing symfony/routing - . 1934.2415677861/s
Rate Mem php array pux aura ham symfony/routing klein
php array 138.8K/s 0B ---90% -28% -9% -1% -1%
pux 124.98K/s 0B 111% -- -31%-10% -1% -1%
aura 39.66K/s 0B 349%315% ---34% -4% -4%
ham 13.57K/s 0B 1023%921% 292% -- -14% -13%
symfony/routing 1.93K/s 786K 7175%6461%2050%701% -- -93%
klein 1.8K/s 262K 7704%6937%2201%753% 107% --
================================== Bar Chart ==================================
php array 138.8K/s | ████████████████████████████████████████████████████████████ |
pux 124.98K/s | ██████████████████████████████████████████████████████ |
aura 39.66K/s | █████████████████ |
ham 13.57K/s | █████ |
symfony/routing 1.93K/s | |
klein 1.8K/s | |
============================== System Information ==============================
PHP Version: 5.5.6
CPU Brand String: Intel(R) Core(TM) i5-3427U CPU @ 1.80GHz
With XDebug Extension.
PUXは(symfonyの/ルーティングなど)を動的すべてのルートを構築するための計算時間を消費しないようにしようとします。代わりに、Puxはキャッシュを行うためにルートをプレーンなPHP配列にコンパイルするので、コンパイルされたルートはキャッシュから非常に高速にロードできます。
Pux PHP Extensionのサポートにより、純粋なPHP Puxよりも1.5〜2倍高速にロードして発送することができます。
出典
2014-01-09 07:08:02
c9s
スリムはテンプレートになる、それはアドオンです。私は非常にスリムをお勧めしたい場合は、すべての単純なルーティングです – Luke
この閉じた質問は非常に便利です。あなたは良いものを見つけましたか?私はここで同じ関心事にいる。 –