| 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(); |
| } |