Hi,

No we are not using named routes. I'm not sure why this is considered
bad practice - as far as I aware this is a feature of the framework.
The documentation IMO doesn't discourage this.

Changing to named routes would be quite an undertaking.

Thanks,
Andy

On Oct 30, 3:18 pm, Thomas Rabaix <thomas.rab...@gmail.com> wrote:
> So you are not using named routes in your templates ?
>
> matchesParameters is only call if you use 'module/action'. Which is a  
> bad practise.
>
> On 30 oct. 2009, at 16:01, arri...@gmail.com wrote:
>
>
>
> > Hi,
>
> > I've just disabled the apc cache under the routing: section in
> > factories.yml and here are some stats:
>
> > Total Incl. Wall Time (microsec):  3,082,027 microsecs
>
> > Then, ordered by number of calls
>
> > sfRoute::mergeArrays       56,978  17.2%   394,924         12.8%   394,924  
> >        12.8%
> > is_array   47,957  14.4%   54,068  1.8%    54,068  1.8%
> > array_diff_key     28,556  8.6%    78,547  2.5%    78,547  2.5%
> > sfRoute::getDefaultParameters      28,489  8.6%    63,969  2.1%    63,969
> > 2.1%
> > sfRoute::setDefaultParameters      28,425  8.6%    85,397  2.8%    85,397
> > 2.8%
> > sfRoute::matchesParameters         28,422  8.6%    1,684,034       54.6%   
> > 1,028,030
> > 33.4%
> > sfRequestRoute::matchesParameters  27,333  8.2%    1,889,048       61.3%
> > 259,590    8.4%
> > sfObjectRoute::matchesParameters   27,333  8.2%    2,424,934       78.7%
> > 379,442    12.3%
> > sfObjectRoute::convertObjectToArray        19,363  5.8%    156,451         
> > 5.1%
> > 136,329    4.4%
> > preg_match         16,348  4.9%    59,968  1.9%    59,968  1.9%
> > array_keys         14,230  4.3%    26,658  0.9%    26,658  0.9%
>
> > So, sfObjectRoute::matchesParameters is called 27,333 times taking
> > 2,424,934 microseconds which it ~78% of the total time for the request
>
> > There are only 66 calls to url_for():
>
> > sfPatternRouting::generate         67      0.0%    2,934,777       95.2%   
> > 2,917   0.1%
> > sfWebController::genUrl    67      0.0%    2,942,070       95.5%   3,345   
> > 0.1%
> > url_for    66      0.0%    2,882,401       93.5%   1,436   0.0%
> > url_for1   66      0.0%    2,879,410       93.4%   1,336   0.0%
>
> > all the calls to url_for() collectively take 2,882,401 microseconds
> > ~93% of total request time.
>
> > On Oct 30, 2:40 pm, "arri...@gmail.com" <arri...@gmail.com> wrote:
> >> Hi,
>
> >> We use APC as the opcode cache, so all *.php files are cached by
> >> default - we had to increase the default apc.max_file_size to alow it
> >> to cache the routing cache file (config_routing.yml.php)
>
> >> We also use the variable cache of APC to speed up routing matches. We
> >> have this entry in factories.yml under routing:
>
> >>       lookup_cache_dedicated_keys:      true
> >>       cache:
> >>         class: sfAPCCache
> >>         param:
> >>           automatic_cleaning_factor: 0
> >>           lifetime:                  1800
>
> >> As I said, the opcode cache pretty much solves the route loading  
> >> speed
> >> for us, our issue is the route matching speed without the above cache
> >> setting.
>
> >> here is our apc.ini
>
> >> extension=apc.so
> >> apc.shm_size=256
> >> apc.ttl=600
> >> apc.gc_ttl=300
> >> apc.user_ttl=600
> >> apc.max_file_size=5M
> >> apc.num_files_hint=6000
>
> >> On Oct 30, 12:49 pm, David Ashwood <da...@inspiredthinking.co.uk>
> >> wrote:
>
> >>> I ran some tests last night on the old performance framework before
> >>> downloading the latest version and starting to migrate my changes  
> >>> into
> >>> the code - this is only the compression based changes - nothing
> >>> intelligent happening yet:
>
> >>> # Creating routing yml with 1000 routes
> >>> # creating 1.2 config
> >>> # time: 0.286042, memory: 1792.00kb
> >>> # creating 1.3 config
> >>> # time: 0.586565, memory: 7680.00kb
> >>> # creating 1.3a config
> >>> # time: 0.639807, memory: 3328.00kb
> >>> # loading 1.2 config
> >>> # time: 0.113459, memory: 4096.00kb
> >>> # loading 1.3 config
> >>> # time: 0.648253, memory: 23808.00kb
> >>> # loading 1.3a config
> >>> # time: 0.409712, memory: 6912.00kb
> >>> # searching 1.2 route
> >>> # time: 0.205716, memory: 0.00kb
> >>> ok 1
> >>> # searching 1.3 route
> >>> # time: 0.004365, memory: 0.00kb
> >>> ok 2
> >>> # searching 1.3a route
> >>> # time: 0.004388, memory: 0.00kb
> >>> ok 3
> >>> FileSize with 1.3 Default: 2126812 routing.php
> >>> FileSize with 1.3a : 1099505  routing.php
>
> >>> This is only from targeting compression - I've not looked at any  
> >>> kind
> >>> of intelligent mapping/loading yet.  The splArray out of habit (I've
> >>> been working on a project recently where the splDatastructures are
> >>> used).  I'll ensure the next version is compatible.
>
> >>> How are you using/how have you configured the APC with sf?
> >>> I ask as I've been playing with some autodetection code - the  
> >>> intention
> >>> being to use it if it's available - otherwise to fall back to more
> >>> conventional approaches.
>
> >>> On Fri, 2009-10-30 at 05:37 -0700, arri...@gmail.com wrote:
> >>>> Hi,
>
> >>>> Here is output from my run of the tests - I cannot run david's
> >>>> benchmark as splFixedArray is not available in my php build, though
> >>>> SPL is shown as available in php_info(). I'm running php 5.2.11.
>
> >>>> Re: config/cache - in 1.3 our config_routing.yml.php is 2,054,492
> >>>> bytes and consists of 628 routes. These are mostly propel routes.
> >>>> However, with APC opcode caching we find this loads very quickly  
> >>>> (last
> >>>> time I benchmarked it was something like 0.06 seconds) Our  
> >>>> problem is
> >>>> matching routes - if we have a page with 50 or so links, the  
> >>>> majority
> >>>> of the time is spent matching the route (something like 1 second  
> >>>> out
> >>>> of total request time of 1.2 seconds) If we enable the APC variable
> >>>> cache and lookup_dedicated_cache_keys once the route is matched,  
> >>>> the
> >>>> performance is ok, however we have a lot of route variations and  
> >>>> I can
> >>>> see this using a large amount of RAM. We cannot run without this  
> >>>> cache
> >>>> as performance is just too slow. Been a while since I looked at  
> >>>> this,
> >>>> but can put together some stats if it's useful?
>
> >>>> [an...@cysrln03-dev-andyr-vm]~/projects/trunk-local-fs/lib/vendor/
> >>>> symfony/test/routing_performance% php routing_performance.php 1.2|
> >>>> grep
> >>>> "^#"
> >>>> # testing patch 1.2
> >>>> # This is equivalent to the latest version from the 1.2 branch.
> >>>> # Creating routing yml with 1500+ routes
> >>>> # 1.2 Routing - Creating Config
> >>>> # time: 1.713294, memory: 2304.00kb
> >>>> # 1.2 Routing - Loading Config
> >>>> # time: 0.193375, memory: 10240.00kb
> >>>> # 1.2 Routing - Searching Routes 10 times
> >>>> # 1.2 Routing - Generating Routes 20 times
> >>>> # time: 1.633093, memory: 3328.00kb
> >>>> # 1.2 Routing - Real World Test - Accumulated data
> >>>> # time: 1.826847, memory: 13568.00kb
> >>>> # file: 211.00kb
> >>>> [an...@cysrln03-dev-andyr-vm]~/projects/trunk-local-fs/lib/vendor/
> >>>> symfony/test/routing_performance% php routing_performance.php  
> >>>> david|
> >>>> grep "^#"
> >>>> # testing patch david
> >>>> # Creating routing yml with 1500+ routes
> >>>> # david Routing - Creating Config
> >>>> PHP Fatal error:  Class 'splFixedArray' not found in /home/andyr/
> >>>> projects/trunk-local-fs/lib/vendor/symfony/test/
> >>>> routing_performance/
> >>>> david/sfRoutingConfigHandlerNew.class.php on line 84
> >>>> [an...@cysrln03-dev-andyr-vm]~/projects/trunk-local-fs/lib/vendor/
> >>>> symfony/test/routing_performance% php routing_performance.php  
> >>>> fabian|
> >>>> grep "^#"
> >>>> # testing patch fabian
> >>>> # Creating routing yml with 1500+ routes
> >>>> # fabian Routing - Creating Config
> >>>> # time: 2.712385, memory: 9472.00kb
> >>>> # fabian Routing - Loading Config
> >>>> # time: 0.421317, memory: 9216.00kb
> >>>> # fabian Routing - Searching Routes 10 times
> >>>> # fabian Routing - Generating Routes 20 times
> >>>> # time: 0.814632, memory: 0.00kb
> >>>> # fabian Routing - Real World Test - Accumulated data
> >>>> # time: 1.236377, memory: 9216.00kb
> >>>> # file: 1899.08kb
>
> >>>> Thanks,
> >>>> Andy.
>
> >>>> On Oct 29, 5:14 pm, Fabian Lange <fabian.la...@symfony-project.com>
> >>>> wrote:
> >>>>> Hi David,
> >>>>> feel free to send me patches for our performance test suite.
> >>>>> I will incorporate them until i find a way to give access to  
> >>>>> everybody.
>
> >>>>> So if you have something new i will include it.
>
> >>>>> Ideally we have then some kind of incubation of a new way for  
> >>>>> routing
> >>>>> to be configured. And we can benchmark them.
>
> >>>>> So that before release 1.3 we can find a good performing solution.
> >>>>> To be included in 1.3 i would like to accept only "small"  
> >>>>> backwards
> >>>>> compatible changes that have a big net effect.
>
> >>>>> Fabian
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony developers" group.
To post to this group, send email to symfony-devs@googlegroups.com
To unsubscribe from this group, send email to 
symfony-devs+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-devs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to