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

Re: Use COM for shell extension / TSVNCache communication

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Sat, 26 Mar 2016 10:37:27 +0100

On 25.03.2016 09:31, Ivan Zhakov wrote:

>> The shell uses multiple threads on its own for this. At least since
>> Win7. It uses a background thread to get the overlay information. So
>> using COM won't reduce the threads.
> I didn't want to reduce the reads. I wanted to actually use them,
> instead of waiting for CRemoteCacheLink mutex.
>
>> But if it's not too much work, you could try it out and then check if
>> it's faster/better.
>>
> I did some simple performance tests and you are right: named pipes are
> slightly faster (10-15%) than COM via LRPC. Another interesting
> findings: using overlapped I/O also takes some significant proportion
> of time.
>
> Very rough results of performing 20k calls with 50 bytes arguments:
> - Named pipes using overlapped I/O on the client: 0.064 ms for one call.
> - Named pipe without overalpped I/O on the client: 0.045 ms for one call.
> - COM with MTA server and MTA client: 0.07 ms for one call
> - COM with MTA server and STA client: 0.115 ms for one call.
> - COM with STA server and STA client: 0.152 ms for one call.
>
> It's not too much work to start using COM for TSVNCache, but given the
> numbers above we may expect more overheads for one call. I'm not sure
> that improved threads/cores utilization compensate this.

Since STA is slower than MTA, you have to also consider that shell
extensions *must* use STA. At least in-process extensions like overlay
handlers.

So I guess we should stick with what's working now.

But thanks for your perf measurements.

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=3167244
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2016-03-26 10:37:33 CET

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.