所有人都说Jave是用于大型系统和工程项目的语言,其运行速度比大多数其他语言都要快得多。我只是将它与另一种基于Agent的建模语言-Netlogo进行了比较,发现Netlog在经典的狼羊模拟模型中比基于Jave的Repast快四倍。两种模型都使用相同的参数进行仿真,并实时运行5秒钟。 Netlogo可以模拟8000多个时间步长,而Jave Repast只能执行大约2600个时间步长。为什么?

netlogo - 基于代理的仿真:为什么Netlogo的运行速度比基于Java的Repast快得多-LMLPHP

最佳答案

如果您将Netlogo与Repast Simphony Wolf-sheep捕食演示与默认设置进行比较,则这是不公平的比较,因为Repast模型的功能更多。 Repast模型正在执行基于文件的数据记录,图表渲染,2D显示渲染和3D显示渲染。 Repast和Netlogo显示器都具有更新设置,这些设置确定它们相对于刻度计数的渲染速度,并且显示器的渲染速度高度依赖于GPU。

为了更好地比较性能,我们需要创建一个更准确的测试环境。我使用默认参数运行了Netlogo演示,并且未选中“查看更新”,因此显示不会更新,但是图表仍会更新。运行模型20,000次滴答大约需要14秒。我通过删除文件记录并关闭2D和3D显示并仅保留图表显示来修改Repast演示,并运行了20,000分钟的模型,这大约需要14秒钟。因此,此演示的Repast和Netlogo之间的性能完全相同。

我们还应该考虑Repast和Netlogo中具有默认参数的演示模型都是具有有限复杂性的TOY模型。通常,在科学研究中使用的更复杂的模型中,主体行为是如此复杂,以至于个人行为的计算时间比工具箱框架的代码时间长一个数量级,这使得这些类型的比较对工具箱功能的信息影响较小。 。

10-04 23:00