3

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

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

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

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

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

因此,它归结为哪个易于连接。

干杯

4

4 回答 4

2

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

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

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

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

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

于 2010-02-06T15:57:27.297 回答
1

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

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

于 2010-02-06T13:38:26.943 回答
1

有两个问题。

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

所以,弄清楚你将使用什么包,以及它可以做什么。

于 2010-02-06T11:16:43.820 回答
1

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

于 2010-02-06T06:20:56.813 回答