Files
sdk/benchmarks/SHA256/dart/sha256.dart
T
Martin Kustermann 9be24ce946 [benchmark] Import MD5/SHA1/SHA256/SkeletalAnimation/SkeletalAnimationSIMD benchmarks from benchmarks-internal
Change-Id: I8b7a740091a438babfdd05dd81423b5593d3d7e3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/156020
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
2020-08-24 14:37:28 +00:00

39 lines
938 B
Dart

// Copyright (c) 2020, the Dart project authors. 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 'package:benchmark_harness/benchmark_harness.dart';
import 'package:convert/convert.dart';
import 'package:crypto/crypto.dart';
const size = 8 * 1024;
const expected =
'dc404a613fedaeb54034514bc6505f56b933caa5250299ba7d094377a51caa46';
class SHA256Bench extends BenchmarkBase {
List<int> data;
SHA256Bench()
: data = List<int>.generate(size, (i) => i % 256, growable: false),
super('SHA256');
@override
void warmup() {
for (int i = 0; i < 4; i++) {
run();
}
}
@override
void run() {
final hash = sha256.convert(data);
if (hex.encode(hash.bytes) != expected) {
throw 'Incorrect HASH computed.';
}
}
}
void main() {
SHA256Bench().report();
}