mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 17:40:04 +00:00
[dart2js] Add Dart2JS input bytes as an internal metric.
Change-Id: Ib036b0511af2a54aa049f3638d9680fca3b77385 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/297701 Commit-Queue: Nate Biggs <natebiggs@google.com> Reviewed-by: Mayank Patke <fishythefish@google.com>
This commit is contained in:
parent
2cdfc05568
commit
9a7f60b438
|
@ -220,6 +220,13 @@ class GenericTask extends CompilerTask {
|
|||
GenericTask(this.name, Measurer measurer) : super(measurer);
|
||||
}
|
||||
|
||||
class GenericTaskWithMetrics extends GenericTask {
|
||||
@override
|
||||
final Metrics metrics;
|
||||
|
||||
GenericTaskWithMetrics(super.name, super.measurer, this.metrics);
|
||||
}
|
||||
|
||||
class Measurer {
|
||||
/// Measures the total runtime from this object was constructed.
|
||||
///
|
||||
|
|
|
@ -17,7 +17,8 @@ import 'common/codegen.dart';
|
|||
import 'common/elements.dart' show ElementEnvironment;
|
||||
import 'common/metrics.dart' show Metric;
|
||||
import 'common/names.dart' show Selectors;
|
||||
import 'common/tasks.dart' show CompilerTask, GenericTask, Measurer;
|
||||
import 'common/tasks.dart'
|
||||
show CompilerTask, GenericTask, GenericTaskWithMetrics, Measurer;
|
||||
import 'common/work.dart' show WorkItem;
|
||||
import 'deferred_load/deferred_load.dart' show DeferredLoadTask;
|
||||
import 'deferred_load/output_unit.dart' show OutputUnitData;
|
||||
|
@ -65,6 +66,7 @@ import 'resolution/enqueuer.dart';
|
|||
import 'serialization/serialization.dart';
|
||||
import 'serialization/task.dart';
|
||||
import 'serialization/strategies.dart';
|
||||
import 'source_file_provider.dart';
|
||||
import 'universe/selector.dart' show Selector;
|
||||
import 'universe/codegen_world_builder.dart';
|
||||
import 'universe/resolution_world_builder.dart';
|
||||
|
@ -110,6 +112,7 @@ class Compiler {
|
|||
Map<Entity, WorldImpact> get impactCache => _impactCache;
|
||||
|
||||
late final Environment environment;
|
||||
final DataReadMetrics dataReadMetrics = DataReadMetrics();
|
||||
|
||||
late final List<CompilerTask> tasks;
|
||||
late final GenericTask loadKernelTask;
|
||||
|
@ -175,7 +178,7 @@ class Compiler {
|
|||
}
|
||||
|
||||
CompilerTask kernelFrontEndTask;
|
||||
selfTask = GenericTask('self', measurer);
|
||||
selfTask = GenericTaskWithMetrics('self', measurer, dataReadMetrics);
|
||||
_outputProvider = _CompilerOutput(this, outputProvider);
|
||||
_reporter = DiagnosticReporter(this);
|
||||
kernelFrontEndTask = GenericTask('Front end', measurer);
|
||||
|
@ -243,6 +246,7 @@ class Compiler {
|
|||
} finally {
|
||||
measurer.stopWallClock();
|
||||
}
|
||||
dataReadMetrics.addDataRead(provider);
|
||||
if (options.verbose) {
|
||||
var timings = StringBuffer();
|
||||
computeTimings(setupDuration, timings);
|
||||
|
|
|
@ -12,6 +12,7 @@ import 'package:front_end/src/api_unstable/dart2js.dart' as fe;
|
|||
|
||||
import '../compiler_api.dart' as api;
|
||||
import 'colors.dart' as colors;
|
||||
import 'common/metrics.dart';
|
||||
import 'io/source_file.dart';
|
||||
|
||||
abstract class SourceFileByteReader {
|
||||
|
@ -624,3 +625,18 @@ class MultiRootInputProvider extends SourceFileProvider {
|
|||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
class DataReadMetrics extends MetricsBase {
|
||||
@override
|
||||
String get namespace => 'input';
|
||||
CountMetric inputBytes = CountMetric('inputBytes');
|
||||
|
||||
void addDataRead(api.CompilerInput input) {
|
||||
if (input is SourceFileProvider) {
|
||||
inputBytes.add(input.bytesRead);
|
||||
if (primary.isEmpty) {
|
||||
primary = [inputBytes];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue