Skip to content

Commit 5ef7dac

Browse files
iinozemtsevCommit Queue
authored andcommitted
[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 <[email protected]> Commit-Queue: Ivan Inozemtsev <[email protected]>
1 parent b7ba61a commit 5ef7dac

File tree

5 files changed

+23
-3
lines changed

5 files changed

+23
-3
lines changed

pkg/compiler/lib/src/commandline_options.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ class Flags {
107107
static const String verbosity = '--verbosity';
108108
static const String progress = '--show-internal-progress';
109109
static const String version = '--version';
110+
static const String omitMemorySummary = '--omit-memory-summary';
110111
static const String reportMetrics = '--report-metrics';
111112
static const String reportAllMetrics = '--report-all-metrics';
112113

pkg/compiler/lib/src/dart2js.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,7 @@ Future<api.CompilationResult> compile(
537537
_OneOption('${Flags.verbosity}=.+', passThrough),
538538
_OneOption(Flags.disableDiagnosticByteCache, passThrough),
539539
_OneOption(Flags.enableDeferredLoadingEventLog, passThrough),
540+
_OneOption(Flags.omitMemorySummary, passThrough),
540541

541542
// Experimental features.
542543
// We don't provide documentation for these yet.
@@ -925,7 +926,9 @@ Future<api.CompilationResult> compile(
925926
break;
926927
}
927928

928-
final memoryUsed = await currentHeapCapacityInMb();
929+
final memoryUsed = compilerOptions.omitMemorySummary
930+
? null
931+
: await currentHeapCapacityInMb();
929932
final memoryUsedString = memoryUsed != null
930933
? ' using $memoryUsed of memory'
931934
: '';

pkg/compiler/lib/src/dump_info.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1883,14 +1883,18 @@ class DumpInfoTask extends CompilerTask implements InfoReporter {
18831883
result.info.deferredFiles = _dumpInfoData.fragmentDeferredMap;
18841884
stopwatch.stop();
18851885

1886+
final ramUsage =
1887+
(options.omitMemorySummary ? null : await currentHeapCapacityInMb()) ??
1888+
'N/A MB';
1889+
18861890
result.info.program = ProgramInfo(
18871891
entrypoint:
18881892
infoCollector.state.entityToInfo[closedWorld
18891893
.elementEnvironment
18901894
.mainFunction]
18911895
as FunctionInfo,
18921896
size: _dumpInfoData.programSize,
1893-
ramUsage: await currentHeapCapacityInMb() ?? 'N/A MB',
1897+
ramUsage: ramUsage,
18941898
dart2jsVersion: options.hasBuildId ? options.buildId : null,
18951899
compilationMoment: DateTime.now(),
18961900
compilationDuration: measurer.elapsedWallClock,
@@ -1967,14 +1971,18 @@ class DumpInfoTask extends CompilerTask implements InfoReporter {
19671971
result.info.deferredFiles = _dumpInfoData.fragmentDeferredMap;
19681972
stopwatch.stop();
19691973

1974+
final ramUsage =
1975+
(options.omitMemorySummary ? null : await currentHeapCapacityInMb()) ??
1976+
'N/A MB';
1977+
19701978
result.info.program = ProgramInfo(
19711979
entrypoint:
19721980
infoCollector.state.entityToInfo[closedWorld
19731981
.elementEnvironment
19741982
.mainFunction]
19751983
as FunctionInfo,
19761984
size: _dumpInfoData.programSize,
1977-
ramUsage: await currentHeapCapacityInMb() ?? 'N/A MB',
1985+
ramUsage: ramUsage,
19781986
dart2jsVersion: options.hasBuildId ? options.buildId : null,
19791987
compilationMoment: DateTime.now(),
19801988
compilationDuration: measurer.elapsedWallClock,

pkg/compiler/lib/src/options.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,10 @@ class CompilerOptions implements DiagnosticOptions {
621621
/// during each phase of compilation.
622622
bool showInternalProgress = false;
623623

624+
/// Omit memory usage in the summary printed to the console at the end of
625+
/// each compilation.
626+
bool omitMemorySummary = false;
627+
624628
/// Enable printing of metrics at end of compilation.
625629
// TODO(sra): Add command-line filtering of metrics.
626630
bool reportPrimaryMetrics = false;
@@ -948,6 +952,7 @@ class CompilerOptions implements DiagnosticOptions {
948952
..useNewSourceInfo = _hasOption(options, Flags.useNewSourceInfo)
949953
..useSimpleLoadIds = _hasOption(options, Flags.useSimpleLoadIds)
950954
..verbose = _hasOption(options, Flags.verbose)
955+
..omitMemorySummary = _hasOption(options, Flags.omitMemorySummary)
951956
..reportPrimaryMetrics = _hasOption(options, Flags.reportMetrics)
952957
..reportSecondaryMetrics = _hasOption(options, Flags.reportAllMetrics)
953958
..showInternalProgress = _hasOption(options, Flags.progress)

pkg/compiler/test/end_to_end/command_line_test.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,9 @@ main() {
567567

568568
// JS Emitter stage
569569
await test(['${Flags.stage}=emit-js', 'foo.dart'], exitCode: 1);
570+
571+
// Omit memory summary.
572+
await test(['--omit-memory-summary', 'foo.dart'], out: 'out.js');
570573
});
571574
}
572575

0 commit comments

Comments
 (0)