Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与使用for循环相比,linqjs库是否具有性能优势?_Javascript - Fatal编程技术网

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的原因不是出于性能原因,而是出于可用性原因。他们需要一个熟悉的语法来进行数据转换,并认为它们的开发时间比软件的执行时间更有价值。

运行性能测量并自行决定?运行性能测量并自行决定吗?