Re: minimizing the cost of managed/unmanaged collaboration
Fabian Schmied <[email protected]> Tue, 3 Apr 2007 07:52:26 +0200
| Newsgroups | gmane.comp.windows.devel.dotnet.cx |
|---|---|
| Message-ID | <[email protected]> |
> Okay, so I have a tentative plan to convert significant amounts of C++ into managed code, Sorry, I don't want to be annoying, but since you are writing that you plan to convert significant amounts of code - do you have a performance improvement plan that _needs_ this conversion to be done? I know that you currently have COM interfaces for the interop, but converting them to C++ Interop or IJW (VC++ 2005/2003) doesn't necessarily solve your performance problems, because your parameters still need to be marshaled with every cross-managed/unmanaged call. And even if COM is your culprit, converting your code to unmanaged DLLs and consume them from C# via P/Invoke might require much less work, although only you can estimate this. Therefore - before rewriting everything, you might want to look at the monitoring stuff in the article I mentioned, maybe you can find out the actual reason for your performance problems. Or, if these don't help you at all, at least try out this rewrite on some small portion of code to measure the benefits. Unless you are really sure that rewriting will pay off. > To achieve this I must master compiling my C++ code as managed, and switch from #importing > COM to #using .NET. This will require exchanging COM smart pointers with __gc pointers. > (Or I could rewrite to C#, but I suppose that's more work.) Beyond that I don't really know > what it will take. Since you are obviously using .NET 1.1 with Managed C++ and IJW, it will probably take some figuring out of quite bizarre error messages with lots of underscores in them as well :) But it is possible, in fact it should just work (IJW = It Just Works). Fabian =================================== This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com