这些是有效的循环优化吗?
本文关键字:优化 循环 有效 | 更新日期: 2023-09-27 17:57:06
如果我执行以下操作,这是否被认为是非最佳(性能方面)?
// Is this optimal?
foreach (var fruit in basket.Fruits())
{
// ....
}
// What about this?
for (var i = 0; i < basket.Fruits().length; ++i) {
// ....
}
// Alternate way.
var fruits = basket.Fruits();
foreach (var fruit in fruits)
{
// ....
}
我正在寻找适用于.Net和Javascript的答案。
谢谢。
两者的性能相同。 basket.Fruits()
返回一个对象,JavaScript 将为该对象创建一个迭代器。
另一种解决方案是使用
Object.keys(basket.Fruits()).forEach(function(fruit) {
// ...
});
无论哪种方式,都不要专注于这种优化。JavaScript 速度很快,并且有许多自动优化。您应该专注于使您的代码尽可能清晰易读。完成后,如果您发现一个缓慢的部分,请专注于优化该部分。
根据您的编辑,您可以将数组的长度存储在循环初始化表达式中的变量中。然后,谓词表达式可以比较i<len
而不是计算每次迭代的数组长度。
for (var i=0; len=basket.Fruits().length; i<len; i++) ...