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