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]].