我正在进行一项模拟,生成数千个结果对象。每个对象大小约为1MB,并且所有结果对象都应该在内存中以便查询各种特定的报告。每生成一个结果对象需要1至2秒钟。
因此,即使我充分利用四核CPU进行并行执行,获取一个模拟所需的时间也超过了5分钟。对于一个模拟集,任务进程需要4至5GB的内存。问题是,我想同时运行更多的模拟集并更快地完成它们。
目前,我正在使用C#和IronPython在Windows Vista64上完成这项工作,我的四核CPU有8GB的内存。我将订购一台新电脑,拥有24GB的内存和更好的CPU,最终可能会购买带有多个CPU和更多内存的工作站。
那么我的问题是,如何最好地利用新硬件?我考虑以下组合之一:
1. 在Windows 64位上使用IronPython + C#。 2. 在Linux 64位上使用IronPython + C#(Mono)。 3. 在Windows 64位上使用Jython + Java。 4. 在Linux 64位上使用Jython + Java。
模拟引擎是用C# / Java编写的,我使用Python制作报告。您认为哪种组合最好?
处理消耗大量内存任务方面,.NET和Java平台之间没有太大区别吗?Windows和Linux之间没有区别吗?
我有时在我的Ubuntu笔记本电脑(32位,2GB RAM)上运行当前的C# + IronPython代码,并且感觉与相同规格硬件上的Windows .NET环境相比似乎非常稳定。但我不知道当底层硬件更好时会发生什么。
欢迎提出任何建议,不论以上选择如何。
因此,即使我充分利用四核CPU进行并行执行,获取一个模拟所需的时间也超过了5分钟。对于一个模拟集,任务进程需要4至5GB的内存。问题是,我想同时运行更多的模拟集并更快地完成它们。
目前,我正在使用C#和IronPython在Windows Vista64上完成这项工作,我的四核CPU有8GB的内存。我将订购一台新电脑,拥有24GB的内存和更好的CPU,最终可能会购买带有多个CPU和更多内存的工作站。
那么我的问题是,如何最好地利用新硬件?我考虑以下组合之一:
1. 在Windows 64位上使用IronPython + C#。 2. 在Linux 64位上使用IronPython + C#(Mono)。 3. 在Windows 64位上使用Jython + Java。 4. 在Linux 64位上使用Jython + Java。
模拟引擎是用C# / Java编写的,我使用Python制作报告。您认为哪种组合最好?
处理消耗大量内存任务方面,.NET和Java平台之间没有太大区别吗?Windows和Linux之间没有区别吗?
我有时在我的Ubuntu笔记本电脑(32位,2GB RAM)上运行当前的C# + IronPython代码,并且感觉与相同规格硬件上的Windows .NET环境相比似乎非常稳定。但我不知道当底层硬件更好时会发生什么。
欢迎提出任何建议,不论以上选择如何。