与统计/模拟软件接口时,C#和Java中的哪一种更容易、更快速?

与统计/模拟软件接口时,C#和Java中的哪一种更容易、更快速?,c#,java,integration,wolfram-mathematica,maple,C#,Java,Integration,Wolfram Mathematica,Maple,首先,我对这种类型的接口几乎一无所知,这是我第一次尝试。我希望使用一个统计/模拟软件Maple或Mathematica或R进行计算,并使用C#/Java处理其他领域,如持久性和数据收集等 您能告诉我这些平台(.Net/Java)中的哪一个在以下方面对本练习更友好: 将数据准备为统计软件可用的格式所需的工作 在两个程序之间通信所需的内存需求和时间方面的性能 我明白,一个单一的平台可能对所有人都不好,一个可能对maple很好,但对R太差。我要寻找的是一个好的组合 为什么我不喜欢Maple/Mat

首先,我对这种类型的接口几乎一无所知,这是我第一次尝试。我希望使用一个统计/模拟软件Maple或Mathematica或R进行计算,并使用C#/Java处理其他领域,如持久性和数据收集等

您能告诉我这些平台(.Net/Java)中的哪一个在以下方面对本练习更友好:

  • 将数据准备为统计软件可用的格式所需的工作
  • 在两个程序之间通信所需的内存需求和时间方面的性能
我明白,一个单一的平台可能对所有人都不好,一个可能对maple很好,但对R太差。我要寻找的是一个好的组合

为什么我不喜欢Maple/Mathematica/R?好吧,它们对我来说都是可用的,我试图计算的是非常常见的,并且在所有这些中都是可用的

因此,这就归结为哪一个是易于接口的

干杯

寻找一些关于你可能想要使用哪种语言的好见解。Java可能会得到最好的支持(尽管我不想这么说)

有两个问题

  • 准备数据。任何语言通常都可以,但Perl非常适合处理文本
  • 接口。这是高度依赖于程序的,所以它是相反的。你只能在Unix上用IPC和它对话,那么C已经过时了,如果你只能在WIndows C下用COM和它对话,可能会更好

所以,弄清楚您将使用什么软件包,以及它能做什么。

I就语言而言,您不太可能看到真正的区别。也许C#比它新的好。然而,Java存在的时间更长,拥有更多的开源库。这意味着您更有可能找到一个在Java中执行X或Y的库

下面是一些可用的开源Java库。 谷歌可以帮助你找到更多的图书馆

准备数据所需的努力 统计数据可用的格式 软件

这并没有说明问题所在。如果您要进行一些复杂的解析,答案可能更多地围绕可用的库。我什么都不知道,我猜是Java。如果不需要特殊的库,它们可能是相等的

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

两者之间的内存是相似的,并且主要是应用程序和库的一个因素。对于cpu性能,在所有其他方面都相同的情况下,我通常发现CLR比JVM具有更好的原始性能。然而,要小心这句话。根据您使用的代码和库的不同,您可能会得到截然不同的结果


另一个考虑因素取决于问题的性质。如果您发现有一些可以卸载到本机代码中的密集处理,您会发现从CLR访问本机代码比从JVM访问本机代码更容易、更快。

我理解,由于实际软件尚未确定,因此很难正确回答。因此,我首先根据这里的一个比较结果最终确定了这个软件包:(非常彻底,但不是最新的(2008年)),因此我选择了Mathematica。完成后,我发现几乎所有人都同意CLR调用本机代码要比Java好得多。如果我对我写的东西很小心;我可以从CLR中得到比Java更多的东西。这就是“C#+Mathematica”。也用于: