OPY-bbt/OPY-bbt.github.io

记一次 Javascript 性能优化

Opened this issue · 1 comments

for (var i = 0; i < 8000; i++) {
   if (...) {
      glyph.path.commands.forEach();
   }
}
for (var i = 0; i < 8000; i++) {
   var commands = glyph.path.commands;
   if (...) {
      commands.forEach();
   }
}

这两段代码性能差了50倍。。

看到源码里的这一句应该就明白了

Object.defineProperty(this, 'path', getPathDefinition(this, options.path));

关键是这种问题真的很难发现,这次发现是因为3D字的demo速度很快,但是同事放到项目中却很卡,经过仔细排查才发现问题。