Re: Use COM for shell extension / TSVNCache communication

Ivan Zhakov <[email protected]>
Newsgroups gmane.comp.version-control.subversion.tortoisesvn.devel
Message-ID <CABw-3YeW5fDJqLyv3b0ufOHq_46Ud+P6=oVtowRbvPsEr6QogQ@mail.gmail.com>
On 26 March 2016 at 12:37, Stefan Küng <[email protected]> wrote:
> 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.
>
Yes, I agree with you.

-- 
Ivan Zhakov

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=3169225

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.