Является ли С++/CLI быстрее, чем С#
Является ли С++/CLI быстрее, чем С#? В каком типе операций это происходит быстрее?
Ответы
Ответ 1
Не обязательно. Тем не менее, С++/CLI убирает большую часть синтаксического сахара вокруг неэффективных способов делать вещи, которые присутствуют на С# (например, в боксе).
Кроме того, С++/CLI позволяет вам гораздо более чистый интерфейс с неуправляемым кодом, фактически позволяя вам смешивать управляемый/неуправляемый код, который является критичной для производительности средой, может быть полезной.
EDIT:
См. этот пост для некоторых различий: http://msdn.microsoft.com/en-us/library/ms379617(VS.80).aspx
Ответ 2
Поскольку оба они работают на платформе .NET, я бы сказал, что любая разница в производительности будет небрежной. Любая разница почти наверняка будет связана с тем, насколько хорошо работают компиляторы, которые вы используете.
Ответ 3
Ну, короткий ответ нет. Зачем? Типы ссылок в С++/CLI скомпилированы в MSIL, как и в С#.
Хорошая вещь о С++/CLI (и длинном ответе) заключается в том, что вы можете легко вызвать собственный код, который (во многих случаях) выполняется быстрее. При этом, если вы пишете собственный С++-класс и ожидаете, что он будет выполнен изначально, если его вызовет кто-то из управляемого класса, этот родной класс С++ должен быть скомпилирован без поддержки CLR (этот вопрос идет о том, как это сделать).
Ответ 4
Увидев, что оба языка .NET, которые скомпилированы в один и тот же байтовый код, который, в свою очередь, запускается на той же виртуальной машине, я бы сказал, вообще-то, нет.
С++/CLI действительно предназначен только для обеспечения языкового взаимодействия между .NET и С++.
Ответ 5
Любой управляемый код, написанный на С++/CLI, по существу будет таким же, как эквивалентный С#, если предположить точность компилятора, так как оба они станут промежуточными языковыми инструкциями. Однако С++/CLI упрощает смешивание неуправляемого кода с управляемой частью, которая может обеспечить значительные преимущества по скорости, если она оптимизирована.
Ответ 6
Это старая статья. Но это показало, что это возможно.
http://www.grimes.demon.co.uk/dotnet/man_unman.htm