[dart2js] Add option to omit memory usage from the dart2js compilation summary.
Internally sometimes this query to get the memory usage will cause timeouts. So provide a way to disable it.
See b/427802111.
Change-Id: I1e6c97d0796b97f42e935e1b20e784796bed1281
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/437660
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ivan Inozemtsev <iinozemtsev@google.com>
diff --git a/pkg/compiler/lib/src/commandline_options.dart b/pkg/compiler/lib/src/commandline_options.dart
index fbac9d2..a6d8993 100644
--- a/pkg/compiler/lib/src/commandline_options.dart
+++ b/pkg/compiler/lib/src/commandline_options.dart
@@ -107,6 +107,7 @@
static const String verbosity = '--verbosity';
static const String progress = '--show-internal-progress';
static const String version = '--version';
+ static const String omitMemorySummary = '--omit-memory-summary';
static const String reportMetrics = '--report-metrics';
static const String reportAllMetrics = '--report-all-metrics';
diff --git a/pkg/compiler/lib/src/dart2js.dart b/pkg/compiler/lib/src/dart2js.dart
index e4e9e4e..46c6774e 100644
--- a/pkg/compiler/lib/src/dart2js.dart
+++ b/pkg/compiler/lib/src/dart2js.dart
@@ -537,6 +537,7 @@
_OneOption('${Flags.verbosity}=.+', passThrough),
_OneOption(Flags.disableDiagnosticByteCache, passThrough),
_OneOption(Flags.enableDeferredLoadingEventLog, passThrough),
+ _OneOption(Flags.omitMemorySummary, passThrough),
// Experimental features.
// We don't provide documentation for these yet.
@@ -925,7 +926,9 @@
break;
}
- final memoryUsed = await currentHeapCapacityInMb();
+ final memoryUsed = compilerOptions.omitMemorySummary
+ ? null
+ : await currentHeapCapacityInMb();
final memoryUsedString = memoryUsed != null
? ' using $memoryUsed of memory'
: '';
diff --git a/pkg/compiler/lib/src/dump_info.dart b/pkg/compiler/lib/src/dump_info.dart
index c8c474b..c3ccb29 100644
--- a/pkg/compiler/lib/src/dump_info.dart
+++ b/pkg/compiler/lib/src/dump_info.dart
@@ -1883,6 +1883,10 @@
result.info.deferredFiles = _dumpInfoData.fragmentDeferredMap;
stopwatch.stop();
+ final ramUsage =
+ (options.omitMemorySummary ? null : await currentHeapCapacityInMb()) ??
+ 'N/A MB';
+
result.info.program = ProgramInfo(
entrypoint:
infoCollector.state.entityToInfo[closedWorld
@@ -1890,7 +1894,7 @@
.mainFunction]
as FunctionInfo,
size: _dumpInfoData.programSize,
- ramUsage: await currentHeapCapacityInMb() ?? 'N/A MB',
+ ramUsage: ramUsage,
dart2jsVersion: options.hasBuildId ? options.buildId : null,
compilationMoment: DateTime.now(),
compilationDuration: measurer.elapsedWallClock,
@@ -1967,6 +1971,10 @@
result.info.deferredFiles = _dumpInfoData.fragmentDeferredMap;
stopwatch.stop();
+ final ramUsage =
+ (options.omitMemorySummary ? null : await currentHeapCapacityInMb()) ??
+ 'N/A MB';
+
result.info.program = ProgramInfo(
entrypoint:
infoCollector.state.entityToInfo[closedWorld
@@ -1974,7 +1982,7 @@
.mainFunction]
as FunctionInfo,
size: _dumpInfoData.programSize,
- ramUsage: await currentHeapCapacityInMb() ?? 'N/A MB',
+ ramUsage: ramUsage,
dart2jsVersion: options.hasBuildId ? options.buildId : null,
compilationMoment: DateTime.now(),
compilationDuration: measurer.elapsedWallClock,
diff --git a/pkg/compiler/lib/src/options.dart b/pkg/compiler/lib/src/options.dart
index 7ab8759..5b4cfe8 100644
--- a/pkg/compiler/lib/src/options.dart
+++ b/pkg/compiler/lib/src/options.dart
@@ -621,6 +621,10 @@
/// during each phase of compilation.
bool showInternalProgress = false;
+ /// Omit memory usage in the summary printed to the console at the end of
+ /// each compilation.
+ bool omitMemorySummary = false;
+
/// Enable printing of metrics at end of compilation.
// TODO(sra): Add command-line filtering of metrics.
bool reportPrimaryMetrics = false;
@@ -948,6 +952,7 @@
..useNewSourceInfo = _hasOption(options, Flags.useNewSourceInfo)
..useSimpleLoadIds = _hasOption(options, Flags.useSimpleLoadIds)
..verbose = _hasOption(options, Flags.verbose)
+ ..omitMemorySummary = _hasOption(options, Flags.omitMemorySummary)
..reportPrimaryMetrics = _hasOption(options, Flags.reportMetrics)
..reportSecondaryMetrics = _hasOption(options, Flags.reportAllMetrics)
..showInternalProgress = _hasOption(options, Flags.progress)
diff --git a/pkg/compiler/test/end_to_end/command_line_test.dart b/pkg/compiler/test/end_to_end/command_line_test.dart
index 85ad4ce..7092dbf 100644
--- a/pkg/compiler/test/end_to_end/command_line_test.dart
+++ b/pkg/compiler/test/end_to_end/command_line_test.dart
@@ -567,6 +567,9 @@
// JS Emitter stage
await test(['${Flags.stage}=emit-js', 'foo.dart'], exitCode: 1);
+
+ // Omit memory summary.
+ await test(['--omit-memory-summary', 'foo.dart'], out: 'out.js');
});
}