Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 84a66c8

Browse files
committed
Move the Google benchmark parse to metric center
1 parent e6dc049 commit 84a66c8

File tree

1 file changed

+10
-55
lines changed

1 file changed

+10
-55
lines changed

testing/benchmark/bin/parse_and_send.dart

Lines changed: 10 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,7 @@ import 'dart:io';
77

88
import 'package:git/git.dart';
99
import 'package:metrics_center/flutter.dart';
10-
11-
const String kNameKey = 'name';
12-
const String kTimeUnitKey = 'time_unit';
13-
const List<String> kNonNumericalValueSubResults = <String>[
14-
kNameKey,
15-
kTimeUnitKey,
16-
'iterations',
17-
'big_o',
18-
];
10+
import 'package:metrics_center/google_benchmark.dart';
1911

2012
Future<String> _getGitRevision() async {
2113
final GitDir gitDir = await GitDir.fromExisting('../../');
@@ -29,56 +21,19 @@ Future<String> _getGitRevision() async {
2921
return logResult.stdout.toString();
3022
}
3123

32-
void _parseAnItem(
33-
Map<String, dynamic> item,
34-
List<FlutterEngineMetricPoint> points,
35-
Map<String, String> context,
36-
String gitRevision,
37-
) {
38-
final String name = item[kNameKey];
39-
final Map<String, String> timeUnitMap = <String, String>{
40-
kUnitKey: item[kTimeUnitKey]
41-
};
42-
for (String subResult in item.keys) {
43-
if (!kNonNumericalValueSubResults.contains(subResult)) {
44-
num rawValue;
45-
try {
46-
rawValue = item[subResult];
47-
} catch (e) {
48-
print('$subResult: ${item[subResult]} (${item[subResult].runtimeType}) '
49-
'is not a number');
50-
rethrow;
51-
}
52-
53-
final double value = rawValue is int ? rawValue.toDouble() : rawValue;
54-
points.add(
55-
FlutterEngineMetricPoint(name, value, gitRevision,
56-
moreTags: <String, String>{kSubResultKey: subResult}
57-
..addAll(context)
58-
..addAll(subResult.endsWith('time')
59-
? timeUnitMap
60-
: <String, String>{})),
61-
);
62-
}
63-
}
64-
}
65-
6624
Future<List<FlutterEngineMetricPoint>> _parse(String jsonFileName) async {
6725
final String gitRevision = await _getGitRevision();
68-
69-
final Map<String, dynamic> jsonResult =
70-
jsonDecode(File(jsonFileName).readAsStringSync());
71-
72-
final Map<String, dynamic> rawContext = jsonResult['context'];
73-
final Map<String, String> context = rawContext.map<String, String>(
74-
(String k, dynamic v) => MapEntry<String, String>(k, v.toString()),
75-
);
26+
final List<MetricPoint> rawPoints =
27+
await GoogleBenchmarkParser.parse(jsonFileName);
7628
final List<FlutterEngineMetricPoint> points = <FlutterEngineMetricPoint>[];
77-
78-
for (Map<String, dynamic> item in jsonResult['benchmarks']) {
79-
_parseAnItem(item, points, context, gitRevision);
29+
for (MetricPoint rawPoint in rawPoints) {
30+
points.add(FlutterEngineMetricPoint(
31+
rawPoint.tags[kNameKey],
32+
rawPoint.value,
33+
gitRevision,
34+
moreTags: rawPoint.tags,
35+
));
8036
}
81-
8237
return points;
8338
}
8439

0 commit comments

Comments
 (0)