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
This is because GHPRI depends on RemoteHub for generating diffs, and RemoteHub uses the diff library, which suffers from known performance issues: kpdecker/jsdiff#239
GHPRI is mitigating this by not generating diffs until absolutely necessary, but a user can still get unlucky if the first file in the PR is very large and we auto-display the diff, or the user may have to wait a long time after clicking to view file changes in the diff view.
We should identify a more performant library, e.g. Google's diff-match-patch js implementation plus modifications to output unidiffs.
The text was updated successfully, but these errors were encountered:
@alexr00, could you try setting "remoteHub.diff.useDiffMatchPatch": true in your settings.json and letting me know how it works for you over the next few days? The original diff library RemoteHub uses suffers from performance issues because it generates enough garbage that the VM spends >60% of its time GC-ing--I'm still looking into why.
Looks like the new diff library is a big improvement perf-wise (still behind the remoteHub.diff.useDiffMatchPatch toggle). Here are some preliminary results from testing RemoteHub with GHPRI:
Loading a PR containing a very large file (34K LOC) with changes takes ~1 minute: microsoft/vscode-pull-request-github#3187
This is because GHPRI depends on RemoteHub for generating diffs, and RemoteHub uses the
diff
library, which suffers from known performance issues: kpdecker/jsdiff#239GHPRI is mitigating this by not generating diffs until absolutely necessary, but a user can still get unlucky if the first file in the PR is very large and we auto-display the diff, or the user may have to wait a long time after clicking to view file changes in the diff view.
We should identify a more performant library, e.g. Google's diff-match-patch js implementation plus modifications to output unidiffs.
The text was updated successfully, but these errors were encountered: