Javascript 提高my library原型的性能
我正在为我的一个项目开发一个小型jQuery风格的库,到目前为止一切都很好,但我遇到了一些性能问题,我似乎不明白为什么,尽管我有一些想法,但首先,这里是有问题的代码(简化为显示实际问题): 演示: 我使用它的方式与jQuery非常相似:Javascript 提高my library原型的性能,javascript,performance,Javascript,Performance,我正在为我的一个项目开发一个小型jQuery风格的库,到目前为止一切都很好,但我遇到了一些性能问题,我似乎不明白为什么,尽管我有一些想法,但首先,这里是有问题的代码(简化为显示实际问题): 演示: 我使用它的方式与jQuery非常相似: _('#outer').find('div').children().filter('a'); 正如您在这里看到的,与jQuery相比,我遇到的问题是性能大幅下降 以下是我的想法: 所有这些ES5数组方法都在减慢速度 某种垃圾收集问题?也许我漏了什么 \u匹
_('#outer').find('div').children().filter('a');
正如您在这里看到的,与jQuery相比,我遇到的问题是性能大幅下降
以下是我的想法:
- 所有这些ES5数组方法都在减慢速度
- 某种垃圾收集问题?也许我漏了什么
\u匹配的方法是否足够有效
编辑:我正在其他浏览器中进行测试,这似乎是Chrome的一个“大问题”…虽然Opera说它的速度慢了20%,但Firefox只慢了3%。性能和优化问题通常最好在codereview.stackexchange.com上解决。我建议您对测试的每种方法与jQuery进行基准测试,以确定哪种方法提供了最需要解决的问题。我猜(没有测试)应该是
.filter()
操作。我已经做过了,是的filter
(或者\u matches
)似乎是最强调的操作,但似乎足够有效。我尝试在文档
上使用querySelectorAll
添加一个临时类,但性能没有提高。我想我将不得不把这个带到codereview。而且,有时候它看起来很随机,我尝试了很多其他方法(不在本例中),包括最后的过滤,有时候jQuery会比较慢。
_('#outer').find('div').children().filter('a');