Javascript 与使用for循环相比,linqjs库是否具有性能优势?
我正在制作一个Javascript 与使用for循环相比,linqjs库是否具有性能优势?,javascript,Javascript,我正在制作一个html5canvas游戏,其中我有一个非常大的多维数组,我需要从中选择一些东西,我将进一步使用或删除它们 现在我看到了三种不同的方法: 使用for循环并迭代整个数组 使用array.prototype.filter()方法 使用图书馆 现在,我想知道哪种方法最快 (当我写了一些英文错误时,请纠正我,这不是我的母语。)浏览器和javascript引擎的性能会有所不同,所以最好使用一些性能工具并对它们进行分析。大多数现代浏览器都在开发人员控制台中内置了优秀的分析工具 也就是说,某
html5
canvas游戏,其中我有一个非常大的多维数组,我需要从中选择一些东西,我将进一步使用或删除它们
现在我看到了三种不同的方法:
- 使用for循环并迭代整个数组
- 使用
array.prototype.filter()方法
- 使用图书馆
(当我写了一些英文错误时,请纠正我,这不是我的母语。)浏览器和javascript引擎的性能会有所不同,所以最好使用一些性能工具并对它们进行分析。大多数现代浏览器都在开发人员控制台中内置了优秀的分析工具 也就是说,某些javascript引擎针对不同的情况进行优化。他们中的许多人已经做了大量的调整,以使他们的循环快速运行,并且在大多数情况下,for循环可以被认为是合理的可预测的。for循环的另一个优点是,如果只需要找到一个项,而该项恰好在数组中出现得更快,则可以尽早打破它 另一方面,由于浏览器知道它将需要检查数组中的每个元素,因此过滤器更容易预测。这允许发动机做出某些假设,并以不同方式分解工作;甚至可能将其并行化,尽管大多数引擎不会自动完成 就LINQjs而言,性能充其量将等于或更可能是更差的性能。这样做的原因是库通常要比运行循环或调用过滤器做更多的工作。额外的逻辑、转换等会导致更多的开销
人们选择LINQjs的原因不是出于性能原因,而是出于可用性原因。他们需要一个熟悉的语法来进行数据转换,并认为它们的开发时间比软件的执行时间更有价值。
浏览器和JavaScript引擎之间的性能会有所不同,所以最好的办法是实际使用一些性能工具并对它们进行全面的描述。大多数现代浏览器都在开发人员控制台中内置了优秀的分析工具
也就是说,某些javascript引擎针对不同的情况进行优化。他们中的许多人已经做了大量的调整,以使他们的循环快速运行,并且在大多数情况下,for循环可以被认为是合理的可预测的。for循环的另一个优点是,如果只需要找到一个项,而该项恰好在数组中出现得更快,则可以尽早打破它 另一方面,由于浏览器知道它将需要检查数组中的每个元素,因此过滤器更容易预测。这允许发动机做出某些假设,并以不同方式分解工作;甚至可能将其并行化,尽管大多数引擎不会自动完成 就LINQjs而言,性能充其量将等于或更可能是更差的性能。这样做的原因是库通常要比运行循环或调用过滤器做更多的工作。额外的逻辑、转换等会导致更多的开销人们选择LINQjs的原因不是出于性能原因,而是出于可用性原因。他们需要一个熟悉的语法来进行数据转换,并认为它们的开发时间比软件的执行时间更有价值。运行性能测量并自行决定?运行性能测量并自行决定吗?