As long as a classmap is a map, it's a hashmap and therefore the access is
usually O(1), meaning: Doesn't care, where the corresponding class appears
within the list.


2012/11/28 Nicolas <nicolas.demar...@gmail.com>

> Tests maded with apc, and even with apc the class isn't load if the file
> isn't load, so apc don't avoid the autoload mecanismus.
>
> For the differences beetween dev and prod environnement, i think the
> number of classes isn't the only point, the order is to a problem, as
> symfony is at the end of the class map (the order is alphabetical), so each
> symfony class take more than 1500 comparisons strings to just load the
> classes at every requests.
>
> Le mercredi 28 novembre 2012 06:46:55 UTC+1, Cameron Junge a écrit :
>
>> Were the tests performed with & without APC? APC will load the file
>> straight from memory in a compiled form, so should help speed things up if
>> the original tests were performed without it. Most production environments
>> use a cache.
>>
>> Building an optimized classmap for each environment would probably only
>> alter a small number of classes, so not sure what benefit there is in
>> having multiple versions. For example, the difference between dev &
>> production on one of my projects would probably be a few 10s or so
>> classes... and some of them will be the automatic exchange of a debug class
>> & the original class.
>>
>> Cameron
>>
>> On Saturday, November 24, 2012 5:15:44 PM UTC+13, Nicolas wrote:
>>>
>>> Hello,
>>>
>>> As i play all this afternoon with xdebug, i could see that* the class
>>> loader* take time and mainly *is called many times (~900 by request)*.
>>>
>>> As i wanted* to improve the speed of a production environnement,* i
>>> made tests and watch in details as the code is called.
>>>
>>> After take improvement give by the docs and finally by the command
>>>
>>>> php composer.phar dump-autoload --optimize
>>>
>>>
>>> I* remove *from the file *vendor/composer/autoload_classmap.php*
>>> produced *the tests classes* (252 on 2890, less than 1%) and run tests
>>> with and without there changes. The result of the tests are in a 
>>> gist<https://gist.github.com/4137837>.
>>> The gain is a little more than one percent on a complex page and less
>>> significant on a hello world page.
>>>
>>> My personnals conclusions are the array class's map should be optimised.
>>> Solutions could be than :
>>>
>>>    - A *arbitrary* *environnements *should be defined* in composer* to
>>>    correspond to applications and produce specific class_loader files
>>>    purposing *to reduce the array size*
>>>
>>>
>>>    - The* order of calling frequencies* should impose* t*he *order in
>>>    composer requirements* which should save it in *the order of the
>>>    classes's map *file (vendor/composer/autoload_[**env]_classmap.php)*,
>>>    to reduce the search time*
>>>
>>> I have begin to post there solutions in a composer issue created by
>>> Seldaek few month ago. But as i maded tests on symfony, as i have a
>>> little voice in the symfony community, and i think you could think better,
>>> and certainly produce smarter code than me about there behaviors with
>>> better acuity (mostly as i see the time i spend to make this mail and
>>> so... and the hour it is).
>>>
>>> So good night, or have nice day,
>>>
>>> Best Regards,
>>>
>>> Nicola
>>>
>>> PS: Very thanks for all you works, symfony and composer and all the
>>> library become more and more nice to use.
>>>
>>  --
> If you want to report a vulnerability issue on symfony, please send it to
> security at symfony-project.com
>
> 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
>



-- 
github.com/KingCrunch

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

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