#performance #web #performance-testing #dart
#Производительность #web #тестирование производительности #dart
Вопрос:
Google запускает новый язык, обещая, что он обладает лучшей производительностью, но как я могу оценить производительность в исходном коде Dart?
Давайте возьмем в качестве примера метод drawFrame «sun flower«:
// Draw the complete figure for the current number of seeds.
void drawFrame() {
ctx.clearRect(0, 0, MAX_D, MAX_D);
for (var i=0; i<seeds; i ) {
var theta = i * PI2 / PHI;
var r = Math.sqrt(i) * SCALE_FACTOR;
var x = xc r * Math.cos(theta);
var y = yc - r * Math.sin(theta);
drawSeed(x,y);
}
}
Если у нас их много seeds
, можем ли мы добавить оператор для оценки прошедшего времени внутри for
?
Ответ №1:
Google обещает лучшую производительность позже, когда в браузере появится собственный dart.
На данный момент Dart компилируется непосредственно в JavaScript и работает больше и медленнее, чем при написании чистого JavaScript.
Функция, которая у вас есть, на самом деле идентична в чистом javascript, поэтому время выполнения должно быть почти одинаковым между скомпилированным dart и прямой версией javascript.
Вы можете сравнить скомпилированный в JS Dart и JS в jsperf.com если бы ты действительно этого хотел.
Ответ №2:
На слайдах GOTO Keynote указаны показатели производительности. Похоже, что Dart примерно в 2 раза медленнее, чем V8 на данный момент. Но, по мнению команды Dart, со временем это должно улучшиться.
Ответ №3:
Поздний ответ, но только вчера они анонсировали страницу performance / benchmarking, которая позволяет отслеживать производительность с течением времени v8, dart -> js и виртуальной машины dart.
Существует статья о сравнительном анализе виртуальной машины Dart, в которой рассказывается, как правильно оценивать виртуальную машину Dart.