Improve performance of ObjectTypeCache::init()
authorTim Düsterhus <duesterhus@woltlab.com>
Thu, 25 Jun 2015 20:34:01 +0000 (22:34 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Thu, 25 Jun 2015 20:42:46 +0000 (22:42 +0200)
commit597c1bbc44291dea25931b427508925a3ec6cc73
treef8bc37e9943bc569d025328c9aabb7d2ff170d70
parent7de0347e5a9cf8dfee6b4ce59cea3c18af0449a4
Improve performance of ObjectTypeCache::init()

This method was one of the slowest that get’s regularly called
during a request.

According to XDebug profiler a request in an empty, stock setup of
Burning Board spent 7% of it's time in this method when requesting
?board-list/. 14% if you are including methods called by this method.

While that obviously does not represent a real world community
optimizing this method is sound, as it’s easily done:

After moving the θ(n) calculation that groups object types by their
definition into the cache where it belongs the numbers go down to
0.31% (excl) and 1.80% (incl).
wcfsetup/install/files/lib/data/object/type/ObjectTypeCache.class.php
wcfsetup/install/files/lib/system/cache/builder/ObjectTypeCacheBuilder.class.php