Changeset 23446
- Timestamp:
- 10/29/09 21:56:36 (4 years ago)
- Files:
-
- tools/routing_performance/routing_performance.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tools/routing_performance/routing_performance.php
r23440 r23446 18 18 } 19 19 20 $t->diag('Creating routing yml with 1 000routes');20 $t->diag('Creating routing yml with 1500+ routes'); 21 21 $template = <<<EOT 22 22 moduleA%s: 23 url: /symfony/rocks/%s 24 param: {module: moduleA, action: index} 23 url: /symfony%s/:build/:file 24 param: { module: build, action: show} 25 requirements: { build: ^\d+$ } 25 26 moduleB%s: 26 27 url: /symfony/rules/%s … … 28 29 29 30 EOT; 31 // I really dont know why this did not work being in one string :) 32 $template2 = <<<EOT 33 moduleC%s: 34 url: /symfony/rocks/%s/:foo/:bar 35 param: {module: moduleC, action: foobar} 36 37 EOT; 38 39 $singleRoutes = <<<EOT 40 star1: 41 url: /star/* 42 param: {module: star, action: all} 43 44 EOT; 30 45 $routingConfigYml = ''; 31 46 foreach(range(1, 500) as $num) 32 47 { 33 $routingConfigYml.=sprintf($template, $num, $num, $num, $num); 48 $routingConfigYml.=sprintf($template, $num, $num, $num, $num, $num, $num); 49 $routingConfigYml.=sprintf($template2, $num, $num); 34 50 } 35 file_put_contents('routing.yml',$routingConfigYml );51 file_put_contents('routing.yml',$routingConfigYml.'\n'.$singleRoutes); 36 52 37 53 $t->diag($patch.' Routing - Creating Config'); … … 50 66 $stats->log($t); 51 67 52 $t->diag($patch.' Routing - Searching Route ');68 $t->diag($patch.' Routing - Searching Routes 10 times'); 53 69 $stats = new Stats(); 54 $info = $routingNew->parse('/symfony/rules/420'); 70 for ($loop = 0; $loop < 10; $loop++) 71 { 72 $info = $routingNew->parse('/symfony/rules/420'); 73 $t->is($info['_sf_route']->getPattern(), '/symfony/rules/420'); 74 $info = $routingNew->parse('/symfony345/foo/bar'); 75 $t->is($info['_sf_route'], null); 76 $info = $routingNew->parse('/symfony345/1234/foo'); 77 $t->is($info['_sf_route']->getPattern(), '/symfony345/:build/:file'); 78 $info = $routingNew->parse('/star/foo/1/bar/2'); 79 $t->is($info['foo'], '1'); 80 $t->is($info['bar'], '2'); 81 } 82 $t->diag($patch.' Routing - Generating Routes 20 times'); 83 for ($loop = 0; $loop < 20; $loop++) 84 { 85 $url = $routingNew->generate('moduleA333', array('build' => 42, 'file' => 'foo')); 86 $t->is($url, '/symfony333/42/foo'); 87 $url = $routingNew->generate(null , array('foo' => 'cat', 'bar' => 'dog', 'module' => 'moduleC')); 88 $t->is($url, '/symfony/rocks/1/cat/dog'); 89 } 90 55 91 $stats->log($t); 56 $t->is($info['_sf_route']->getPattern(), '/symfony/rules/420');57 92 58 93 $t->diag($patch.' Routing - Real World Test - Accumulated data'); 59 94 $realWorldUsage->log($t); 95 $t->diag(sprintf('file: %.2fkb', filesize($patch.'/routing.php')/1024));