D11992: Fix bad performance for `addRules` in `DefaultHighlighter` for big containers
Nikita Sirgienko
noreply at phabricator.kde.org
Fri Apr 6 19:40:39 UTC 2018
sirgienko created this revision.
sirgienko added reviewers: Cantor, asemke.
sirgienko added a project: Cantor.
Restricted Application added a subscriber: KDE Edu.
Restricted Application added a project: KDE Edu.
sirgienko requested review of this revision.
REVISION SUMMARY
Now, in `addRules` we call `addRule`, which emit `rulesChanged`, that leads to `rehighlight` all worksheet. This is useless work, because for each rule in rules container we reprocessing all worksheet. (instead better option to emit `rulesChanged` only one time after container processing). So, when container is big, performance falls quite strongly, for example highlighter of octave backend spends 2-4 seconds for adding new function. So this changes improve `emit` logic, calling only one event for rules container.
TEST PLAN
1. Start octave backend, write octave function, check, that cantor is freezed for few seconds
2. Apply patch
3. Check, that octave backend don't freeze after entry with user function.
REPOSITORY
R55 Cantor
BRANCH
fix-highlighter-performance-problem
REVISION DETAIL
https://phabricator.kde.org/D11992
AFFECTED FILES
src/lib/defaulthighlighter.cpp
src/lib/defaulthighlighter.h
To: sirgienko, #cantor, asemke
Cc: #cantor, #kde_edu, narvaez, apol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-edu/attachments/20180406/a11064f8/attachment-0001.html>
More information about the kde-edu
mailing list