Re: Use COM for shell extension / TSVNCache communication
Stefan Küng <[email protected]>
| Newsgroups | gmane.comp.version-control.subversion.tortoisesvn.devel |
|---|---|
| Message-ID | <[email protected]> |
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: [[email protected]].