Login | Register
My pages Projects Community openCollabNet

Discussions > dev > Spell checking is very slow in commit dialog on Windows 8 and later

Project highlights: :. Download .: :. Support .: :. FAQ .: :. Translations .: :. Donate .: :. Report Bug .:

tortoisesvn
Discussion topic

Back to topic list

Spell checking is very slow in commit dialog on Windows 8 and later

Author zhakov
Full name Ivan Zhakov
Date 2016-05-01 11:22:07 PDT
Message 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.

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.

[1] https://msdn.microso​ft.com/en-us/library​/windows/desktop/hh8​69748
[2] https://sourceforge.​net/p/tortoisesvn/co​de/26518/

--
Ivan Zhakov
Attachments

« Previous message in topic | 1 of 5 | Next message in topic »

Messages

Show all messages in topic

Spell checking is very slow in commit dialog on Windows 8 and later zhakov Ivan Zhakov 2016-05-01 11:22:07 PDT
     Re: Spell checking is very slow in commit dialog on Windows 8 and later steveking Stefan Küng 2016-05-01 11:57:19 PDT
         Re: Spell checking is very slow in commit dialog on Windows 8 and later Ivan Zhakov <ivan at visualsvn dot com> Ivan Zhakov <ivan at visualsvn dot com> 2016-05-02 03:09:32 PDT
             Re: Spell checking is very slow in commit dialog on Windows 8 and later Ivan Zhakov <ivan at visualsvn dot com> Ivan Zhakov <ivan at visualsvn dot com> 2016-05-02 06:30:46 PDT
                 Re: Spell checking is very slow in commit dialog on Windows 8 and later steveking Stefan Küng 2016-05-02 11:02:06 PDT
Messages per page: