На другие части вашего вопроса уже дан ответ, поэтому я сосредоточусь на этом:
Что мне интересно, так это если проект tnet использует оба C# и F #, тогда как будет работать G C? Я думаю, что код из F # будет генерировать очень много мусора, который, возможно, будет трудно обработать с обычным G C из C#.
Это интересный момент для рассмотрения, но лежащий в основе этого Вопрос состоит в двух допущениях:
- Типичная программа на F # производит значительно больше мусора, чем обычная C# программа, настолько, что она делает заметную разницу
- . NET G C изо всех сил пытается справиться с количеством мусора, генерируемого типичными программами F #
Оба на самом деле не соответствуют действительности. Вы, конечно, можете писать нетипичные программы на обоих языках, которые будут подавлять. NET G C - хотя вам может показаться, что это намного сложнее, чем вы изначально думали - так что это больше вопрос того, как часто вы можете непреднамеренно получить в эту позицию с F # по сравнению с C#.
Я не думаю, что этот пункт был изучен много. F # довольно широко используется в областях финансового и аналитического моделирования, где использование ресурсов имеет значение. Он также все чаще используется для разработки веб-сервисов и облачных вычислений, где значение времени, затрачиваемого в G C на длительный процесс, имеет значение. Но не так много данных, чтобы предположить, что F # не соответствует стандартам для этого сценария ios по сравнению с C#, или что он работает просто отлично. Я склонен сказать, что он подходит для этих сценариев ios, судя только по количеству и типам ошибок, поданных на языке .
Кроме того, на F # 4.5 имеются расширенные возможности для низкоуровневого программирования с нулевым распределением с Span<'T>
, byref
-подобными структурами, типами указателей и соответствующим анализом компиляторов программ, которые их используют. Они также нетипичны для использования на F #, но для чувствительного к производительности сценария ios они делают язык действительно блестящим. Воспринимайте это как зерно соли, но некоторые из тестов Language Benchmarks Game указывают на то, что производительность не является большой проблемой.