Я давно начал с простого C, затем перешел на C ++, и теперь я сталкиваюсь с C ++ / CLI. Как фанат производительности, я всегда пытаюсь втиснуть последнее падение производительности в каждую строку кода. В настоящее время я нахожусь в проекте, который имеет смысл делать в основном в VB.Net (простота, доступность ресурсов и т. Д.), Но у меня есть несколько моментов, которые очень чувствительны к производительности, и я планировал выполнить эти части в C ++ / CLI , Однако только небольшая его часть может быть извлечена из управляемого кода, в то время как остальная часть должна быть управляемой. Вопрос в том, можно ли ожидать повышения производительности от написания управляемой функции на C ++ / CLI по сравнению с C # или VB.Net? Из того, что я мог понять из документов, которые я читал, кажется, что единственным преимуществом является то, что управляемый / неуправляемый thunking легче. Это тот случай? Потому что я даже не могу хранить дескрипторы в неуправляемых массивах или структурах (которыми я мог бы манипулировать быстрее), например:
String ^ mystr = "Oh, my!";
Object ^ myarray[10];
myarray[0] = mystr; // Can't event be casted to void*, int, HANDLE...
// (however, handles do have a sizeof() == 4 in Win32)
// (I don't expect the handle to behave like a pointer; just stay as handle)