C#和Java哪个更容易快速地与统计/模拟软件进行接口交互?

3
首先,我对这种类型的接口几乎一无所知,这是我第一次尝试。我想使用统计/仿真软件之一,包括Maple、Mathematica或R进行计算,并使用C# / Java处理其他领域,如持久性和数据收集等。
您能告诉我这些平台(.Net/Java)中哪一个在以下方面更加友好:
1. 准备数据以便统计软件使用所需的工作量;
2. 在内存需求和两个程序间通信所需时间方面的性能。
我了解到单个平台可能不适合所有软件,例如一个平台对Maple非常好,但对R来说则不太好。我正在寻找一个良好的组合。
那么为什么我没有固定选择Maple/Mathematica/R呢?因为它们都可以使用,而且我要计算的内容在它们所有平台上都很常见。
所以现在问题就转化为哪一个平台易于接口。
干杯!
4个回答

2

准备数据以适用于统计软件格式所需的工作量

这并没有概述问题。如果您要进行一些复杂的解析,答案可能更多地涉及可用的库。不知道任何信息的情况下,我会猜测Java。如果不需要特殊的库,则它们可能是相等的。

在内存需求和两个程序之间通信所需的时间方面的性能

两者之间的内存类似,并且大部分将成为应用程序和使用的库的因素。对于CPU性能,其他所有方面都相等,我通常发现CLR比JVM具有更好的原始性能。但是,请小心使用该语句。根据您使用的代码和库的不同,您可能会得到完全不同的结果。

根据问题的性质,还有一个考虑因素。如果您发现有一些密集的处理可以转移到本机代码中,那么您会发现从CLR访问本机代码比从JVM访问本机代码更容易,也更快。


我理解,由于实际软件尚未确定,这使得正确回答变得困难。因此,我首先根据在此处找到的比较(http://www.scientificweb.com/ncrunch/ncrunch5.pdf)(非常详细但不是很新(2008)),最终确定了软件包。所以我选择了Mathematica。一旦完成这个步骤,我发现几乎每个人都同意CLR比Java更好地调用本地代码。而且,如果我小心编写,我可以从CLR中获得比Java更多的东西。所以它是“C#+Mathematica”。还使用了:https://dev59.com/hUrSa4cB1Zd3GeqPWnYT - Elister

1

点击这里可以了解一些关于选择编程语言的好建议。虽然我不太想说,但Java可能会有最好的支持。


1

有两个问题。

  • 准备数据。任何编程语言都可以,但Perl非常适合处理文本。
  • 接口。这取决于程序,所以相反的情况是,如果你只能在Unix上使用IPC与它交流,那么C#就不适用,如果你只能使用Windows下的COM与它交流,那么C#可能更好。

因此,确定你将使用哪个软件包以及它可以做什么。


1
在语言方面,您不太可能看到真正的区别。也许C#更好,因为它是新的。但是,Java已经存在更长时间,并且拥有更多的开源库。这意味着您更有可能在Java中找到适合您的X或Y的库。
这里只是一些可用的开源Java库。http://java-sources.org/1 谷歌可以帮助您找到更多库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接