




Без каких-либо веских доказательств этого, я просто сделаю обоснованное предположение и скажу «нет». Поскольку ваши сборки компилируются до почти идентичного IL, вы действительно не увидите какого-либо снижения производительности из-за использования различных реализаций языка CLR.
Я не эксперт по CLR, но предполагаю, что у вас будет очень похожая производительность. Все языки компилируются в MSIL, который работает в среде CLR. Возможны различия в производительности в зависимости от MSIL, созданного компиляторами. т.е. возможно, что аналогичный код в VB.NET будет компилироваться в менее (или более) оптимизированный MSIL, чем компилятор C#.
Согласовано. В некоторых случаях может быть действительно полезно использовать язык, который лучше всего решит набор проблем конкретной подсистемы. Например, использование F# для высокопараллельной вычислительной программы.
Хотя у меня нет никаких тестов, я бы сказал, что по большей части этого не должно быть. Все эти разные языки компилируют код в CIL, так что все будет в порядке.
Одно место, где это было бы иначе, - это языки, которые работают в DLR (IronPython, IronRuby и т. д.). Они компилируются с использованием некоторых функций, которых нет в CLR и которые требуют более затратных операций.
Как уже упоминалось в других ответах, весь код завершается компиляцией до CIL, поэтому при условии, что код выполняется последовательно на разных языках (и у вас не включена оптимизация компилятора), результирующий IL будет довольно идентичным. Теперь, если у вас есть тот же код и вы используете оптимизацию компилятора, вы можете получить другой набор IL, который повлияет на производительность.
Как было отмечено этот ответ, DLR может влиять на производительность. Большинство из того, что я слышал / читал об этом, утверждает, что влияние на производительность незначительно.
Я согласен с другими ответами. Единственное, что может повлиять на производительность, - это то, что если вы загружаете много сборок, вы увидите накладные расходы. Однако накладные расходы не связаны с языком, используемым для создания сборки, но если вы смешиваете много разных компонентов, вы можете получить больше сборок, чем в противном случае. Если это не относится к вашему приложению, все должно быть в порядке.
Но это с одним ограничением: компиляция разных языков dotnet в MSIL одинакова. Я имею в виду, что разные компиляторы действуют одинаково.