1

我在for循环中使用 clone() 。我想知道这是否是一个很好的表现练习。

var myTable = new TableElement();
var clonableRow = new TableRowElement();

for (var i = 0; i < cols; i++) {
  clonableRow.append(new TableCellElement());
}

for (var j = 0; j < rows; j++) {
  myTable.append(clonableRow.clone(true));
}

代替..

var myTable = new TableElement();

for (var i = 0; i < rows; i++) {
  var aRow = myTable.append(new TableRowElement());
  for (var j = 0; j < cols; j++) {
    aRow.append(new TableCellElement());
  }
}

哪一个最适合性能?你有其他解决方案吗?(就像我不知道的 Table 的本机工厂构造函数..)

4

1 回答 1

0

没有真实数据很难说,基准测试怎么样?但只有在遇到性能问题时才值得努力——不要过早优化!

但是如果你在 Dart 中做一个基准测试,你应该阅读这个指南。Dart VM 的内部使得真正的基准测试很难得到正确的结果。您的代码在变热之前不会得到优化(已经运行了几次)。在检查模式下运行 VM 也会有所不同!

于 2013-09-06T19:32:33.733 回答