multi-dimensional array transmit issue
I am using VSTS 2008 + Native C++ to develop RPC programs (both client and server). I am reading MSDN document for marshalling multi-dimensional array
http://msdn.microsoft.com/en-us/library/aa374185(VS.85).aspx
I am confused about the following statement, and I am confused about what means offline and online, and why of开发者_如何转开发fline/online is related to size of stub/performance? Could anyone help to clarify please?
The fully-interpreted method marshals data completely offline. This reduces the size of the stub code considerably, but it also results in decreased performance. In mixed-mode marshaling, the stubs marshals some parameters online. While this results in a larger stub size, it also offers increased performance.
For a long while it was a poorly documented part as they extended the RPC into 'object' space and what not and docs are probably still out of date. Besides, you do realise it is a multi-decade old tech extending the old DPC RPC ? :-)
Whilst MS historically had some of the most optimal marshalling code for that age (wars on Corba-on-the-Cob and ACE-style-blasphemy-code), most likely the difference of online/offline is in being partially-interpreted (and optimised when it can) or fully interpreted (ie. all data driven).
I can't access MSDN or any microsoft site, because I either pissed them off or I have one of those popular viruses that block all their sites ( and I don't mind the former or the latter, it makes me use my time more effectively without managed noise).
If that link is not for /Oic or similar switch for the MIDL compiler. it should give you an idea what it is all about. I wouldn't be bothered too much by it, try both and see the perf/size if you have to.
精彩评论