a9d2363f08
Sometimes - on responding to `edit.getFixes` requests, the method `getTopLevelDeclarations` is called several times with the same parameter and caching has then sometimes sped things up. I then also noticed that it caused `reportAnalysisAnalytics` to be called many times (e.g. 73 times for one `edit.getFixes` request) each time spending time collecting data which - on passing to `analyticsManager.analysisComplete` - was just thrown away because it only saves the first one. Combined these changes have been observed to reduce the response time on `edit.getFixes` by up (down?) to ~20% (e.g. from 5 seconds to 1 second). In response to http://b/407797012 where more data is also available. Unfortunately I haven't been able to reproduce this is a benchmark (yet anyway). I don't know if it needs slower slower reads, an extreme amount of files, several contexts or something else entirely. Change-Id: Id214b0e1b7d8bbef7f6d956408f17fab45618b78 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/420323 Reviewed-by: Phil Quitslund <pquitslund@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>