Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 提高my library原型的性能_Javascript_Performance - Fatal编程技术网

Javascript 提高my library原型的性能

Javascript 提高my library原型的性能,javascript,performance,Javascript,Performance,我正在为我的一个项目开发一个小型jQuery风格的库,到目前为止一切都很好,但我遇到了一些性能问题,我似乎不明白为什么,尽管我有一些想法,但首先,这里是有问题的代码(简化为显示实际问题): 演示: 我使用它的方式与jQuery非常相似: _('#outer').find('div').children().filter('a'); 正如您在这里看到的,与jQuery相比,我遇到的问题是性能大幅下降 以下是我的想法: 所有这些ES5数组方法都在减慢速度 某种垃圾收集问题?也许我漏了什么 \u匹

我正在为我的一个项目开发一个小型jQuery风格的库,到目前为止一切都很好,但我遇到了一些性能问题,我似乎不明白为什么,尽管我有一些想法,但首先,这里是有问题的代码(简化为显示实际问题):

演示:

我使用它的方式与jQuery非常相似:

_('#outer').find('div').children().filter('a');
正如您在这里看到的,与jQuery相比,我遇到的问题是性能大幅下降

以下是我的想法:

  • 所有这些ES5数组方法都在减慢速度
  • 某种垃圾收集问题?也许我漏了什么
  • \u匹配的方法是否足够有效
以上所有这些会导致性能比jQuery慢60%吗?还是我的实现错了?有什么想法吗


编辑:我正在其他浏览器中进行测试,这似乎是Chrome的一个“大问题”…虽然Opera说它的速度慢了20%,但Firefox只慢了3%。

性能和优化问题通常最好在codereview.stackexchange.com上解决。我建议您对测试的每种方法与jQuery进行基准测试,以确定哪种方法提供了最需要解决的问题。我猜(没有测试)应该是
.filter()
操作。我已经做过了,是的
filter
(或者
\u matches
)似乎是最强调的操作,但似乎足够有效。我尝试在
文档
上使用
querySelectorAll
添加一个临时类,但性能没有提高。我想我将不得不把这个带到codereview。而且,有时候它看起来很随机,我尝试了很多其他方法(不在本例中),包括最后的过滤,有时候jQuery会比较慢。
_('#outer').find('div').children().filter('a');