velocity
velocity copied to clipboard
Performance
- add
compile
method to support simple precompiling. More work should be done to achieve further performance improvement. - add benchmarks
- velocity without precompiling
- nunjucks without precompiling
- velocity with precompiling
- nunjucks with precompiling
加了预编译后由于不需要每次都解析AST,执行效率大概是原来的2.5倍,但是跟nunjucks比还是渣渣。后面再优化。
最耗时的竟然是utilx里的类型判断
把utilx中的类型判断换成lodash后,性能显著提高,未预编译版本性能超过nunjucks,预编译版本接近达到nunjucks的二分之一
优化前:
优化后:
可以直接使用了
Sent from my iPhone
On May 18, 2015, at 12:16 AM, Shawn [email protected] wrote:
把utilx中的类型判断换成lodash后,性能显著提高,未预编译版本性能超过nunjucks,预编译版本接近达到nunjucks的二分之一
优化前:
— Reply to this email directly or view it on GitHub.
还有优化空间
这个PR等等再合并哈,下周有时间再搞搞
多余的 commits rebase 合并掉
isObject 判断,可以使用最高效的方式: if (obj && typeof obj === 'object' && !Array.isArray(obj))
而且我们如果已经判断了不是数组,后面一步也没必要了
lodash里的isObject也是这么做的。你说的几个我再改改看看性能提升
改好了,不再调用lodash,都是现场判断掉了。性能又提高了一点点,到了nunjucks 1/2水平了。
benchmark不是特别精准,有时能到1/2,有时到不了。
这个还没合
ms 邵帅说他再改改,然后我就忘记关注了