我很困惑,如果你开导我会很感激.F#使用与C#相同的CLR,底层代码是相同的,那么当用F#编写函数时,如何建议函数运行速度比C#快?如果我只在C#中使用不可变变量并且性能需要尽可能高,那么为什么要使用F#?
Gre*_*mer 14
底层代码是一样的吗?疑.一般来说,F#在某些方面会更快,而在其他方面会更慢.C#也是如此.甚至是VB.每种语言都有其优点.如果在大多数领域中存在整体性能,则它在编译器中.
如果我只在C#中使用不可变变量并且性能需要尽可能高,那么为什么要使用F#?没有理由单独切换性能,如果事实上存在真正的差异,除非性能是你的问题.至于为什么切换如果你只使用C#中的功能,我会说"不要切换".
我喜欢F#.它解决的一些"问题"比C#好得多.但是,即使我有一个问题,它解决得更好,我不一定要切换,因为我必须考虑混合中的开发人员.目前,我知道在这个组织中很少有人对F#有所了解,所以我必须做一个好的商业案例来切换.
最终,您必须查看"业务问题"并确定路径.您必须将"更好"的语言视为组合的一部分,但您还必须检查核心能力等.
kvb*_*kvb 10
1)如果你编写的C#代码和F#代码被编译成完全相同的IL(CLR的中间语言),那么代码将表现出相同的性能特征.但是,在C#和F#中实现相同的算法并不能保证生成完全相同的IL,因此实际性能可能会有所不同.我相信在实践中,有时F#代码会更快,但有时候C#会更快.
2)除了性能之外,选择实现语言的原因有很多.例如,对于某些问题域,有些人发现F#比C#更简洁,可读,更容易推理,这是偏好它的一个原因.对于绝大多数程序而言,用户几乎看不到5%或10%的性能差异,因此如果一种语言提供的性能大致相当,但生产率更高,那么使用该语言就更有意义了.