OPY-bbt / OPY-bbt.github.io

my webpage
https://opy-bbt.github.io/
0 stars 0 forks source link

记一次 Javascript 性能优化 #30

Open OPY-bbt opened 4 years ago

OPY-bbt commented 4 years ago
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倍。。

OPY-bbt commented 4 years ago

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

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

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