1

就提高 NetLogo 中模型的性能而言,最好使用尽可能多的过程或尽可能少的过程进行编码,例如...

(为非常粗略的例子道歉,编码新手)

我问这个是因为当用许多命令编码相当复杂的程序时,它“看起来”用许多程序编码更整洁。

许多程序

to move
    forward
    turn
end

to forward
    fd 1
end

to turn
    rt random 10
    lt random 10
end

或者

更少的程序

to move
    fd 1
    rt random 10
    lt random 10
end

干杯,

哈里

4

1 回答 1

2

这种类型的组织对绩效几乎没有任何影响。性能问题几乎总是由于算法问题(例如,要求所有海龟询问所有补丁,而您实际上只需要询问所有补丁)而不是代码组织问题。

我强烈建议始终组织您的代码,使其尽可能易读。这使得发现算法问题变得更加容易,帮助您确定性能不佳的真正原因。

最后,您应该查看分析器扩展。它带有 NetLogo。它将准确细分每个过程花费的时间以及每个过程被调用的时间。这将帮助您识别代码中的问题点,并确定对代码的特定更改是否会提高性能。如果您将代码组织成多个过程,分析器将能够为您提供更细粒度的结果。但是请注意,您很容易因为有许多程序而过度使用并损害可读性。

对于代码的组织,可读性应该始终是第一要务。有时,出于功能或性能原因,您可能必须实现更复杂的算法,因此可能更难阅读。有些算法更难推理,因此自然更难阅读。你仍然应该尽你所能组织你的算法实现,以最大限度地提高可读性。

于 2015-10-20T19:55:29.923 回答