用 Lo-Dash 替换 underscore


我用Lo-Dash替换Underscore已经有一段时间了。Lo-Dash更快,支持AMD,并且拥有Underscore所缺乏的特性。同时,Lo-Dash和Underscore是100%兼容的,所以如果你使用依赖Underscore的库(例如Backbone),或者你现有的代码已经使用了Underscore,那么只需改用Lo-Dash,立刻就能获得性能上的优势。这真是太棒了!

用 Lo-Dash 替换 underscore

lazy.js同样声称“类似Underscore,但是使用惰性求值”,并发布了一些令人印象深刻的速度比较。这已经足够引起人们的兴趣了,而且lazy.js看上去就是一个有趣的库。但是我想提醒大家注意一些事实。

让我们看看lazy.js上的第一个速度比较的图片:

用 Lo-Dash 替换 underscore

Lazy.js的速度相当地令人印象深刻,但是你也应该注意到 Lo-Dash 同样比 Underscore 高得多。 大概是四五倍,甚至更多。现在看看左边的数据,那是每秒能完成的操作。这些柱状图形很小,但是它们代表的数字可是相当巨大!那是每秒几十万次操作和每秒几百万次操作的差距。

是的,Lazy.js要快得多,但是Lo-Dash也比Underscore要快得多,而且最重要的是 Lo-Dash 可以直接替换 Underscore,不会带来兼容性问题。

没有什么值得争论的。如果你使用Underscore,不管在哪里使用(包括 Node.js),你应该花上几分钟切换到 Lo-Dash。没有任何理由不这么做。相反,有很多非常好的理由让你这么做(最主要的是速度的提升)。这些好处唾手可得。

呃,我是不是忘了说了,Lo-Dash以后也会有惰性求值


英文 Use Lo-Dash Instead of Underscore
翻译 SegmentFault


发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>