目前,我正在决定在哪个平台上构建一款科学计算产品,我正在考虑使用C#、Java或者纯粹的C语言与Intel编译器配合使用Core2 Quad CPU。该产品主要涉及整数运算。
到目前为止,我的基准测试结果显示Java和C语言大致相当,而.NET/C#落后于它们约5%。然而,我的一些同事声称,只要给JIT足够的时间来完成其工作,使用适当的优化,.NET将会超过这两种语言。
我一直认为应用程序启动后几分钟内(在我的情况下可能是几秒钟),JIT就已经完成了它的任务,所以我不确定是否应该相信他们。
有人可以解释一下这种情况吗?.NET是否能够击败Java?(还是最好坚持使用C语言?)
代码高度多线程,并且数据集大小达到了数千亿字节。
在这种情况下,Haskell/Erlang等选项并不可行,因为有大量现有的遗留C代码将被移植到新系统中,而将C代码移植到Java/C#比移植到Haskell或Erlang要简单得多。(除非这些语言提供了显著的加速)。
编辑:我们正在考虑转向C#或Java,因为它们在理论上可能更快。我们能减少的每个百分比都可以使我们每年节省数万美元。目前,我们只是试图评估C、Java或c#哪一个会更快。