Re: Spell checking is very slow in commit dialog on Windows 8 and later
Ivan Zhakov <[email protected]>
| Newsgroups | gmane.comp.version-control.subversion.tortoisesvn.devel |
|---|---|
| Message-ID | <CABw-3Ye7ge7ZuDzO_3mpECrL=DTK2AZXxOG4J2g8v2OWRJPUag@mail.gmail.com> |
On 1 May 2016 at 21:57, Stefan Küng <[email protected]> wrote: > On 01.05.2016 20:21, Ivan Zhakov wrote: >> I've noticed that log message spell checking is extremely slow on >> Windows 8 and later. >> >> It seems that root cause is the fact that Microsoft spell checking API >> is implemented as out-of-process DCOM server [1]. TortoiseProc uses >> STA apartment, so every MS Spell checking API COM call cause message >> pump and WM_PAINT for Scinitilla editor is processed. >> >> I suggest the following changes to improve spell checker performance >> in commit dialog: >> 1. Perform styling and spell checking in SCN_STYLENEEDED notification >> handler instead of SCN_MODIFIED: The code was using SCN_STYLENEEDED >> before r26518 [1]. Commit r26518 justification was that >> SCN_STYLENEEDED is called for every repaint. But this was happening >> because we didn't update end styled position in editor. Calling >> SCI_STARTSTYLING(endpos) and SCI_SETSTYLING(0) after processing >> SCN_STYLENEEDED fixes this problem and editor stops sending >> SCN_STYLENEEDED notification for every repaint. See attached patch. >> This fixes unnecessary repaints during styling Scintilla editor seems >> to be smart enough to block repaint during SCN_STYLENEEDED processing. > > Thanks for the patch. > Committed in r27294. > Thanks for review! >> 2. Introduce small cache for spell checker. For 1000 words or >> something. We checking the same text multiple times during typing, so >> this gives huge performance improvement. I've patch in progress, but >> it's not ready yet. > > Looks good. Waiting for your patch. > This need some refactoring, so I'm going to implement it incrementally on trunk if you generally support this idea. -- Ivan Zhakov ------------------------------------------------------ http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=3171079 To unsubscribe from this discussion, e-mail: [[email protected]].