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.
> 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.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest interface to (Sub)version control
/_/ \_\ http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=3171047
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2016-05-01 20:57:26 CEST