qdiff is order of magnitude slower than plain diff for 100K+ C file
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QBzr |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Even with small amount of changes (less than 10 lines) in BIG file (C file more than 100KiB size, more than 3500 lines) qdiff is very slow.
C:\work\
Profile data written to "qdiff-
time: 22.642
C:\work\
...
Profile data written to "diff-big-
time: 2.457
Time in seconds.
Callgrinds for both cases are attached. My best guess we spend too much time either in syntax highlighting code or in drawing diff on the screen.
We discussed with Gary on UDS syntax highlighting. It should be done in second pass, after actual diff will be shown on the screen. Or at least will be nice to switch it off (manually or automatically) for all or only BIG files.
description: | updated |
quick look at callgrind for qdiff reveals syntax highlighter stuff at the top of the file. Does it means it's the biggest player there?