Files
Eric Seidel 4c20cedd30 Fix analysis issues in benchmarks/ directory
Now that I'm able to open the entire SDK in VSC, I'm fixing some
of the analysis issues in various files (carefully) without changing
their meaning.

In this case, I removed unnecessary imports from benchmarks.
In regexp_benchmark I ignored one warning which likely would
have changed the behavior of the code.

BUG=https://github.com/dart-lang/sdk/issues/52419

Change-Id: I9a195a4e45121313bd9f065f2579a165c3fec05b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/303901
Auto-Submit: Eric Seidel <eric@shorebird.dev>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2023-05-17 09:14:50 +00:00

48 lines
1.2 KiB
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 'dart:convert';
import 'dart:math';
class JsonRoundTripBenchmark {
void run() {
final res = json.decode(jsonData);
final out = json.encode(res);
if (out[0] != jsonData[0]) {
throw 'json conversion error';
}
}
}
// Builds around 350 KB of json data - small enough so the decoded object graph
// fits into new space.
final String jsonData = () {
final rnd = Random(42);
dynamic buildTree(int depth) {
final int coin = rnd.nextInt(1000);
if (depth == 0) {
if (coin % 2 == 0) return coin;
return 'foo-$coin';
}
if (coin % 2 == 0) {
final map = <String, dynamic>{};
final int length = rnd.nextInt(19);
for (int i = 0; i < length; ++i) {
map['bar-$i'] = buildTree(depth - 1);
}
return map;
} else {
final list = <dynamic>[];
final int length = rnd.nextInt(18);
for (int i = 0; i < length; ++i) {
list.add(buildTree(depth - 1));
}
return list;
}
}
return json.encode({'data': buildTree(5)});
}();