我正在浏览lodash源代码,发现一个简单的_.get方法将执行10条以上的指令来获取{a: {b: {c: 10}}}
中c的值,而我可以通过执行!!a && !!b && a.b.c
来简单地访问c
我在写作方式和lodash的_get(obj, 'a.b.c')
之间可以看到的唯一改进是,lodash的代码看起来很漂亮。
我是否仍然比js方法更喜欢lodash方法?
答案 0 :(得分:1)
1)Lodash不是为了提高性能。它是以更方便的方式做事或使用一些现成的解决方案insteAd自己编写的(例如debounce
和throttle
,它们特别有用imo)
2)如果没有适当的基准测试,你无法可靠地判断出Lodash的速度有多慢。这是因为JS解释器,浏览器,操作系统甚至CPU和RAM的工作方式。你真的不知道哪些汇编指令被执行,它们如何被CPU处理或天气可能会被操作系统或其他东西阻挡。计数指令是没用的。您必须阅读有关这些主题的内容才能更好地理解这一点。
3)在优化之前,首先找到瓶颈并优化连续经常或多次发生的事情更有效,例如循环或鼠标移动等常见事件。算法的时间复杂度以及执行不同事物的频率通常比尝试进行微小优化更为重要。