Как я могу оценить производительность Dart?

#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.