You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Running time ./mill __.compile on the Mill codebase, after everything is already compiled, takes about ~2.5 to run and do nothing. ./mill plan __.compile shows about 16847 tasks, working out to be able 0.14ms to evaluate each cached task.
Mill's codebase is unusual in having a large number of modules for its size, as it uses modules to define the various integration test cases. But this large number of modules is perhaps representative of large projects in general, and we should definitely be able to have better performance than this to support large projects.
The text was updated successfully, but these errors were encountered:
Some rough profiles showing the hotspots in JProfiler. Seems a lot of time spend in revalidateIfNeededOrThrow and in resolveDirectChildren (which uses Class#getMethods and NameTransformer#decode
Seems the time is relatively evenly split between resolve, instantiateModule, and evaluate
Optimizing resolve would likely involve moving the getMethods/decode calls into the Discover data structure, which would be a binary compatibility breakage and need to wait for 0.13.0
Running
time ./mill __.compile
on the Mill codebase, after everything is already compiled, takes about ~2.5 to run and do nothing../mill plan __.compile
shows about 16847 tasks, working out to be able 0.14ms to evaluate each cached task.Mill's codebase is unusual in having a large number of modules for its size, as it uses modules to define the various integration test cases. But this large number of modules is perhaps representative of large projects in general, and we should definitely be able to have better performance than this to support large projects.
The text was updated successfully, but these errors were encountered: