我正在进行模拟,生成数千个结果对象。 每个对象大小约为1mb,所有结果对象都应该在内存中,以便查询各种临时报告。制作一个结果对象需要1~2秒。
因此即使我完全使用我的四核CPU并行执行,也需要超过5分钟才能完成一次模拟。对于一个模拟集,任务过程需要超过4~5 gb的内存。问题是,我想同时运行更多的模拟集并更快地完成它。
目前,我正在使用Windows vista64上的c#和ironpython进行此工作,具有8g内存的四核CPU。我要订购一台新计算机,24 gb内存和更好的CPU,最终,我可能会购买带有多个cpu和更多内存的工作站。
所以我的问题是,使用新硬件的最佳方法是什么? 我考虑以下组合之一。
模拟引擎是用c#/ java编写的,我使用python来编写报告。 你们认为哪种组合最好?
.net和java平台之间没有很大的区别来处理内存消耗任务吗? Windows和Linux之间没有区别吗?
我有时在我的ubuntu笔记本电脑(32位,2g内存)上运行我当前的c#+ ironpython代码,并且觉得它与相同规格硬件上的windows .net env相比看起来相当稳定。但我不知道什么时候底层硬件更好。
我欢迎任何建议,无论上述选择如何。
答案 0 :(得分:2)
由于你可以免费安装所有这些,听起来你已经在.Net和Java中实现了代码,所以我建议你在所有四个平台(windows / linux * java / .net)上对程序进行基准测试。
听起来所有繁重的工作都是在Java / C#中完成的,所以我怀疑Jython与IronPython的相对表现在很大程度上是无关紧要的。
答案 1 :(得分:2)
@Dave是现货,如果你真的关心每个组合的基准并看到。
就我个人而言,我建议您坚持使用最适合的工具集,无论是Windows,Java,Linux,.Net还是随机组合。维护和开发软件的生产力水平通常胜过切换操作系统或虚拟机所带来的任何微小的性能提升。