[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

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

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Sun, 1 May 2016 20:57:20 +0200

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

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.