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