I studied this recently.
As far as I can tell, the autoStart function will cause your IIS workflows (by default, only one for the pool) to compile JIT before the first request.
However, what compiled seems to represent just most of the assemblies and dependencies, but not necessarily any methods.
When this first request occurs, and your methods that you wrote are called for the first time, JITer finally compiles those methods that have not yet been compiled.
The advantage of autoStart is that it allows .Net to do 90% of the work, but the last 10% is still paid when the first request occurs, and those methods that were not yet available are started for the first time.
source share