I thought that might be the answer. Thank you On Feb 17, 2017 4:53 PM, "Tim Roberts" <t...@probo.com> wrote:
> Stephen Chapman wrote: > > > > Since it was a simple example I was only passing a single int for a > > parameter and returning 0. As far as I know COM servers don't cache > > responses I have never seen that happen anyway. > > That's not what I said. There are two parts to a late-dispatch COM > call: finding the address of the routine to call, and calling the > routine. Finding the address is a relatively expensive operation, > because you don't just have a pile of function pointers. You have to go > enumerate the list of methods and properties until you find the one you > want by comparing the names as strings, then go ask what the function's > signature is, then fake up a function call with that signature. It's > possible that C# caches that information so it can just make the call. > > However, I was assuming that both the client and server were in C#. Now > I see that it's only the server that's in C#, so my comment does not apply. > > > > However the question was really why in the order of magnitude is > > python so much slower for the same exact call. I have slightly > > changed my example to bump the number by one to show that it is not > > caching. And pass I am passing 4 parameters now so as to show how > > much longer python takes as you add more arguments. So here are the > > results. I have just done a simple timer in this example. > > ... > > So the function now bumps by one and has 4 parameters passing... So > > as you can see the Python code took 11 times longer to do this simple > > process > > If i add 5 more paramters C# only slightly goes up and Python more > > than doubles. > > Really, that's just the way it is. Interpreted Python code is always > going to be slower than the just-in-time compiled machine code from C#. > COM interfaces are optimized for C++, so the Python interface is always > going to have something of an impedance mismatch. 20 microseconds per > call is pretty fantastic, in my view, but if your application is one > where performance over millions of calls is absolutely critical, then > you should not move to Python. > > -- > Tim Roberts, t...@probo.com > Providenza & Boekelheide, Inc. > > _______________________________________________ > python-win32 mailing list > python-win32@python.org > https://mail.python.org/mailman/listinfo/python-win32 >
_______________________________________________ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32