blob: 8fa328c66806849d28ec58f060909d4f9071d0f7 [file] [log] [blame]
// Copyright (c) 2015, Google Inc. Please see the AUTHORS file for details.
// All rights reserved. Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
import 'dart:math' as math;
import 'dart:typed_data';
import 'package:benchmark_harness/benchmark_harness.dart';
import 'package:vector_math/vector_math.dart';
class ConstructorBenchmark extends BenchmarkBase {
ConstructorBenchmark() : super('Vector2()');
static void main() {
ConstructorBenchmark().report();
}
@override
void run() {
for (var i = 0; i < 100000; i++) {
Vector2(100, 100);
}
}
}
class ConstructorZeroBenchmark extends BenchmarkBase {
ConstructorZeroBenchmark() : super('Vector2.zero()');
static void main() {
ConstructorZeroBenchmark().report();
}
@override
void run() {
for (var i = 0; i < 100000; i++) {
Vector2.zero();
}
}
}
class ConstructorArrayBenchmark extends BenchmarkBase {
ConstructorArrayBenchmark() : super('Vector2.array()');
static void main() {
ConstructorArrayBenchmark().report();
}
@override
void run() {
for (var i = 0.0; i < 100000; i++) {
Vector2.array([i, i]);
}
}
}
class ConstructorAllBenchmark extends BenchmarkBase {
ConstructorAllBenchmark() : super('Vector2.all()');
static void main() {
ConstructorAllBenchmark().report();
}
@override
void run() {
for (var i = 0.0; i < 100000; i++) {
Vector2.all(i);
}
}
}
class ConstructorCopyBenchmark extends BenchmarkBase {
ConstructorCopyBenchmark() : super('Vector2.copy()');
static void main() {
ConstructorCopyBenchmark().report();
}
@override
void run() {
final copyFrom = Vector2(1, 1);
for (var i = 0.0; i < 100000; i++) {
Vector2.copy(copyFrom);
}
}
}
class ConstructorFromFloat32ListBenchmark extends BenchmarkBase {
ConstructorFromFloat32ListBenchmark() : super('Vector2.fromFloat32List()');
static void main() {
ConstructorFromFloat32ListBenchmark().report();
}
@override
void run() {
final list = Float32List.fromList([0.0, 0.0]);
for (var i = 0.0; i < 100000; i++) {
Vector2.fromFloat32List(list);
}
}
}
class ConstructorFromBufferBenchmark extends BenchmarkBase {
ConstructorFromBufferBenchmark() : super('Vector2.fromBuffer()');
static void main() {
ConstructorFromBufferBenchmark().report();
}
@override
void run() {
final buffer = Uint32List(2).buffer;
for (var i = 0.0; i < 100000; i++) {
Vector2.fromBuffer(buffer, 0);
}
}
}
class ConstructorRandomBenchmark extends BenchmarkBase {
ConstructorRandomBenchmark() : super('Vector2.random()');
static void main() {
ConstructorRandomBenchmark().report();
}
@override
void run() {
final random = math.Random();
for (var i = 0.0; i < 100000; i++) {
Vector2.random(random);
}
}
}
class SetFromBenchmark extends BenchmarkBase {
SetFromBenchmark() : super('Vector2.setFrom()');
final Vector2 v1 = Vector2(100, 100);
final Vector2 v2 = Vector2.zero();
static void main() {
SetFromBenchmark().report();
}
@override
void run() {
for (var i = 0; i < 100000; i++) {
v2.setFrom(v1);
}
}
}
class DotProductBenchmark extends BenchmarkBase {
DotProductBenchmark() : super('Vector2.dot()');
final Vector2 v1 = Vector2(100, 100);
final Vector2 v2 = Vector2(100, 200);
static void main() {
DotProductBenchmark().report();
}
@override
void run() {
for (var i = 0; i < 100000; i++) {
v1.dot(v2);
}
}
}
void main() {
ConstructorBenchmark.main();
ConstructorZeroBenchmark.main();
ConstructorArrayBenchmark.main();
ConstructorAllBenchmark.main();
ConstructorCopyBenchmark.main();
ConstructorFromFloat32ListBenchmark.main();
ConstructorFromBufferBenchmark.main();
ConstructorRandomBenchmark.main();
SetFromBenchmark.main();
DotProductBenchmark.main();
}