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

您能否告诉我这些平台(.Net/Java)中哪一个对于本次练习更友好:

  • 将数据准备为统计软件可用的格式所需的工作
  • 内存要求和两个程序之间通信所需的时间方面的性能。

我知道单一平台可能并不适合所有这些平台,一个平台可能对枫树来说非常好,但对 R 来说太糟糕了。我正在寻找的是一个好的组合。

为什么我不固定使用 Maple/Mathematica/R 之一?好吧,它们都对我来说是可用的,而且我想要计算的内容非常常见,并且在所有这些中都可用。

因此,归根结底在于哪一个易于连接。

干杯

有帮助吗?

解决方案

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

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

在记忆要求和两个程序之间交流所需的时间方面的表现

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

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

其他提示

这里 有关您可能想要使用哪种语言的一些深入见解。Java 可能会得到最好的支持(尽管我确实不想这么说)

有两个问题。

  • 准备数据。通常任何语言都可以,但 Perl 非常适合处理文本。
  • 界面。这是高度依赖于程序的,所以它是相反的。你只能在 Unix 上使用 IPC 与它对话吗?那么 C# 就出局了,如果你只能在 WIndows 下使用 COM 与它对话,C# 可能会更好。

因此,弄清楚您将使用什么包以及它可以做什么。

就语言而言,您不太可能看到真正的差异。也许 C# 因为它更新而更好。然而,Java 的存在时间更长,并且拥有更多的开源库。这意味着您更有可能在 Java 中找到适合您执行 X 或 Y 操作的库。

这里只是一些可用的开源 Java 库。 http://java-sources.org/1Google 可以帮助您找到更多图书馆。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top