我已经多次遇到过这个问题。假设我迭代一个列表,我想以不同的方式“查看”它(列表的数据可以根据您解析它的方式进行不同的解释)。这可以仅在一次迭代中完成,但代码看起来会变得混乱和复杂。另一种方法是多次迭代列表;每次任务一次。我会选择这个,但是如果列表非常大并且每次迭代在性能方面都是昂贵的呢? 总而言之,最好是:
a)一次迭代并处理所有事情 b)执行多次迭代并且每次迭代只处理一个任务
我期待着听到你的答案。
答案 0 :(得分:1)
好问题。答案是“它取决于”。
首先,我注意到你没有指定架构。例如,如果您在GPU或CPU上执行操作会产生很大的不同 - 同样,不同的CPU也会以不同的方式工作。现在我假设英特尔CPU很简单,但请记住这一点。
您使用“效果”标记标记了此问题,因此我将如何解释此问题。至于表现,只有一个黄金标准,那就是基准会告诉你真相。也就是说,要记住一些指导原则:
就我个人而言,我认为Mike Acton的视频讲述了如何编写适当的高性能代码。 https://www.youtube.com/watch?v=rX0ItVEVjHc和https://www.youtube.com/watch?v=GPpD4BBtA1Y是最值得观看的视频(如果你问我,他们真的值得花时间。)
答案 1 :(得分:1)
这是代码质量和性能之间的权衡。没有一般的答案。两种选择都有效,具体取决于要求。