Precompiled reflection data for rather static packages
Packages which are usually not touched during development (such as FLOW3, Fluid etc.) don't need to be monitored for changes and thus could provide some precompiled reflection data which could be loaded if caches were flushed.
Such packages could be marked by a new "frozen" state which can be set and removed through a command line command.
[FEATURE] Precompiled reflection data for frozen packages
This feature introduces "frozen packages". Through the command line
command "package:freeze" one ore more packages can be set into a
frozen state. A frozen package is excluded from file monitoring and
its reflection data is stored in a file separate from the regular
caches. After caches have been flushed, this precompiled reflection
data is loaded in order to speed up the compile run during that first
With "package:unfreeze" packages can be unfrozen and "package:refreeze"
will refresh the precompiled reflection data of an already frozen
Package freezing is only supported for Development context.
#16 Updated by Bastian Waidelich almost 8 years ago
Some rough performance measurements for the record. Tested with current T3CON12 distribution (15.03.2012, 15:30) on Windows 7, 64bit (3 test runs per case)
flow3:cache:flush -> 7s 1st flow3:cache:warmup -> 55s 2nd flow3:cache:warmup -> 11s 1st request -> 48s 2nd request -> 7s
flow3:cache:flush -> 7s (+-0%) 1st flow3:cache:warmup -> 44s (-20%) 2nd flow3:cache:warmup -> 15s (+36%) 1st request -> 37s (-23%) 2nd request -> 7s (+-0%)
Now (with all packages except TYPO3.Conference frozen):
flow3:cache:flush -> 5s (-29%) 1st flow3:cache:warmup -> 26s (-53%) 2nd flow3:cache:warmup -> 7s (-36%) 1st request -> 20s (-58%) 2nd request -> 5s (-29%)