When i look at the blame xhr request in the dark console i can still see a query selecting all the commits by their identifiers instead of the id's (which take a long time).
I suspect this is for showing the connected revisions to the commits. I couldn't quite find where that is executed. Maybe someone could push me to the right file?
However changing this behavior might need an conduit api change (adding an extra field with the revision information)
I remember that the biggest performance gain was coming from using PHIDs when selecting all the commit info in the FileController instead of the commit identifiers.
Showing the blame info on the library_map file was a good benchmark.
- Use lastmodifiedquery (which is a little more tailored/efficient) instead of historyquery.
- Use standard cache infrastructure (this is slightly less efficient but much simpler and feels like a good place to start).
- Don't try to do the reparse/prefill stuff yet -- we could pursue that later.
With other optimizations, this drops __phutil_library_map__.php in blame + no color mode from about 3.5 seconds to about 800ms (when we hit cache) for me locally.