blob: 16c1b17802fdb04beb7097ebb1d5659ae8469c14 [file] [log] [blame]
import 'dart:typed_data';
import 'package:fixnum/fixnum.dart';
import 'package:protobuf_benchmarks/benchmark_base.dart';
import 'package:protobuf_benchmarks/generated/f12.pb.dart' as f12;
import 'package:protobuf_benchmarks/generated/google_message2.pb.dart';
class RepeatedBenchmark extends BenchmarkBase {
final Uint8List _buffer;
RepeatedBenchmark(super.name, GoogleMessage2 message)
: _buffer = message.writeToBuffer();
@override
void run() => GoogleMessage2.fromBuffer(_buffer);
}
class RepeatedEnumBenchmark extends BenchmarkBase {
final Uint8List _buffer;
RepeatedEnumBenchmark(super.name, f12.A58 message)
: _buffer = message.writeToBuffer();
@override
void run() => f12.A58.fromBuffer(_buffer);
}
void main() {
const kSize = 500000;
RepeatedBenchmark(
'repeated_int64',
GoogleMessage2(field130: List<Int64>.generate(kSize, Int64.new)),
).report();
RepeatedBenchmark(
'repeated_string',
GoogleMessage2(field128: List<String>.generate(kSize, (i) => i.toString())),
).report();
RepeatedEnumBenchmark(
'repeated_enum',
f12.A58(a306: List<f12.A322>.generate(kSize, (_) => f12.A322.A324)),
).report();
}