Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 2 additions & 8 deletions packages/devtools_app/lib/src/framework/framework_core.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import '../service/vm_service_wrapper.dart';
import '../shared/analytics/analytics.dart' as ga;
import '../shared/config_specific/framework_initialize/framework_initialize.dart';
import '../shared/console/eval/eval_service.dart';
import '../shared/feature_flags.dart';
import '../shared/framework/app_error_handling.dart' as error_handling;
import '../shared/framework/framework_controller.dart';
import '../shared/framework/screen_controllers.dart';
Expand All @@ -37,7 +36,6 @@ import '../shared/preferences/preferences.dart';
import '../shared/primitives/message_bus.dart';
import '../shared/server/server.dart' as server;
import '../shared/utils/utils.dart';
import 'observer/memory_observer.dart';
import 'theme_manager.dart';

typedef ErrorReporter = void Function(String title, Object error);
Expand Down Expand Up @@ -84,9 +82,7 @@ extension FrameworkCore on Never {
// preferences have been initialized.
await extensionService.initialize();

if (FeatureFlags.memoryObserver.isEnabled) {
_memoryObserver.init();
}
_memoryObserver.init();
}

/// Disposes framework level services and managers.
Expand All @@ -99,9 +95,7 @@ extension FrameworkCore on Never {
preferences.dispose();
_themeManager?.dispose();
unawaited(dtdManager.dispose());
if (FeatureFlags.memoryObserver.isEnabled) {
_memoryObserver.dispose();
}
_memoryObserver.dispose();
}

static void _initGlobals() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import 'package:vm_snapshot_analysis/utils.dart';
import 'package:vm_snapshot_analysis/v8_profile.dart';

import '../../shared/charts/treemap.dart';
import '../../shared/feature_flags.dart';
import '../../shared/framework/screen.dart';
import '../../shared/framework/screen_controllers.dart';
import '../../shared/primitives/utils.dart';
Expand Down Expand Up @@ -772,12 +771,10 @@ class AppSizeController extends DevToolsScreenController {

@override
void releaseMemory({bool partial = false}) {
if (FeatureFlags.memoryObserver.isEnabled) {
// This behavior is the same regardless of the value of `partial`. We can
// implement a partial clearing if it becomes necessary.
clear(AppSizeScreen.analysisTabKey);
clear(AppSizeScreen.diffTabKey);
}
// This behavior is the same regardless of the value of `partial`. We can
// implement a partial clearing if it becomes necessary.
clear(AppSizeScreen.analysisTabKey);
clear(AppSizeScreen.diffTabKey);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import 'package:vm_service/vm_service.dart';
import '../../service/vm_service_wrapper.dart';
import '../../shared/diagnostics/diagnostics_node.dart';
import '../../shared/diagnostics/inspector_service.dart';
import '../../shared/feature_flags.dart';
import '../../shared/framework/app_error_handling.dart' as error_handling;
import '../../shared/framework/screen.dart';
import '../../shared/framework/screen_controllers.dart';
Expand Down Expand Up @@ -805,13 +804,11 @@ class LoggingController extends DevToolsScreenController

@override
void releaseMemory({bool partial = false}) {
if (FeatureFlags.memoryObserver.isEnabled) {
if (partial) {
// Trim logs from the front so that the oldest logs are removed.
_updateData(data.sublist(data.length ~/ 2));
} else {
clear();
}
if (partial) {
// Trim logs from the front so that the oldest logs are removed.
_updateData(data.sublist(data.length ~/ 2));
} else {
clear();
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import 'dart:async';
import 'package:devtools_app_shared/utils.dart';
import 'package:flutter/foundation.dart';

import '../../../shared/feature_flags.dart';
import '../../../shared/framework/screen.dart';
import '../../../shared/framework/screen_controllers.dart';
import '../../../shared/globals.dart';
Expand Down Expand Up @@ -217,11 +216,9 @@ class MemoryController extends DevToolsScreenController

@override
FutureOr<void> releaseMemory({bool partial = false}) async {
if (FeatureFlags.memoryObserver.isEnabled) {
diff.clearSnapshots(partial: partial);
// Clear all allocation traces since the traces form a single tracing
// profile.
await trace?.clear();
}
diff.clearSnapshots(partial: partial);
// Clear all allocation traces since the traces form a single tracing
// profile.
await trace?.clear();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import 'package:vm_service/vm_service.dart';

import '../../shared/config_specific/import_export/import_export.dart';
import '../../shared/config_specific/logger/allowed_error.dart';
import '../../shared/feature_flags.dart';
import '../../shared/framework/screen.dart';
import '../../shared/framework/screen_controllers.dart';
import '../../shared/globals.dart';
Expand Down Expand Up @@ -515,9 +514,7 @@ class NetworkController extends DevToolsScreenController

@override
FutureOr<void> releaseMemory({bool partial = false}) async {
if (FeatureFlags.memoryObserver.isEnabled) {
await clear(partial: partial);
}
await clear(partial: partial);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import 'package:vm_service/vm_service.dart';

import '../../service/service_registrations.dart' as registrations;
import '../../shared/diagnostics/inspector_service.dart';
import '../../shared/feature_flags.dart';
import '../../shared/framework/screen.dart';
import '../../shared/framework/screen_controllers.dart';
import '../../shared/globals.dart';
Expand Down Expand Up @@ -291,9 +290,7 @@ class PerformanceController extends DevToolsScreenController

@override
FutureOr<void> releaseMemory({bool partial = false}) async {
if (FeatureFlags.memoryObserver.isEnabled) {
await clearData(partial: partial, clearVmTimeline: !partial);
}
await clearData(partial: partial, clearVmTimeline: !partial);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import 'package:flutter/foundation.dart';
import 'package:vm_service/vm_service.dart';

import '../../shared/config_specific/logger/allowed_error.dart';
import '../../shared/feature_flags.dart';
import '../../shared/framework/screen.dart';
import '../../shared/framework/screen_controllers.dart';
import '../../shared/globals.dart';
Expand Down Expand Up @@ -188,9 +187,7 @@ class ProfilerScreenController extends DevToolsScreenController

@override
FutureOr<void> releaseMemory({bool partial = false}) async {
if (FeatureFlags.memoryObserver.isEnabled) {
// There is no way to partially release memory for this screen.
await clear();
}
// There is no way to partially release memory for this screen.
await clear();
}
}
10 changes: 0 additions & 10 deletions packages/devtools_app/lib/src/shared/feature_flags.dart
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,6 @@ bool get enableBeta => enableExperiments || !isExternalBuild;
/// to the [_booleanFlags] or [_flutterChannelFlags] map for debugging
/// purposes.
extension FeatureFlags on Never {
/// Flag to enable the DevTools memory observer, which attempts to help users
/// avoid OOM crashes.
///
/// https://github.com/flutter/devtools/issues/7002
static final memoryObserver = BooleanFeatureFlag(
name: 'memoryObserver',
enabled: true,
);

/// Flag to enable save/load for the Memory screen.
///
/// https://github.com/flutter/devtools/issues/8019
Expand Down Expand Up @@ -115,7 +106,6 @@ extension FeatureFlags on Never {
/// When adding a new boolean flag, you are responsible for adding it to this
/// map as well.
static final _booleanFlags = <BooleanFeatureFlag>{
memoryObserver,
memorySaveLoad,
networkSaveLoad,
devToolsExtensions,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'dart:async';

import 'package:devtools_app/devtools_app.dart';
import 'package:devtools_app/src/framework/observer/memory_observer.dart';
import 'package:devtools_app/src/shared/feature_flags.dart';
import 'package:devtools_app/src/shared/primitives/byte_utils.dart';
import 'package:devtools_app_shared/utils.dart';
import 'package:devtools_test/devtools_test.dart';
Expand Down Expand Up @@ -36,10 +35,6 @@ void main() {
return memoryUsageBytes;
}

setUpAll(() {
FeatureFlags.memoryObserver.setEnabledForTests(true);
});

setUp(() {
measurementComplete = Completer();
observer = MemoryObserver(
Expand All @@ -57,10 +52,6 @@ void main() {
observer.dispose();
});

tearDownAll(() {
FeatureFlags.memoryObserver.setEnabledForTests(false);
});

test(
'does not add banner message when memory limit is not reached',
() async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

import 'package:devtools_app/devtools_app.dart';
import 'package:devtools_app/src/screens/profiler/cpu_profiler_controller.dart';
import 'package:devtools_app/src/shared/feature_flags.dart';
import 'package:devtools_app_shared/utils.dart';
import 'package:devtools_test/devtools_test.dart';
import 'package:flutter_test/flutter_test.dart';
Expand All @@ -18,7 +17,6 @@ void main() {
late ProfilerScreenController controller;

setUp(() {
FeatureFlags.memoryObserver.setEnabledForTests(true);
final fakeServiceConnection = FakeServiceConnectionManager(
service: FakeServiceManager.createFakeService(
cpuSamples: CpuSamples.parse(goldenCpuSamplesJson),
Expand Down Expand Up @@ -63,7 +61,6 @@ void main() {
});

test('releaseMemory', () async {
FeatureFlags.memoryObserver.setEnabledForTests(true);
await controller.cpuProfilerController.loadAllSamples();
expect(controller.cpuProfilerController.dataNotifier.value, isNotNull);
expect(
Expand All @@ -75,7 +72,6 @@ void main() {
controller.cpuProfilerController.dataNotifier.value,
CpuProfilerController.baseStateCpuProfileData,
);
FeatureFlags.memoryObserver.setEnabledForTests(false);
});
});
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ library;
import 'dart:convert';

import 'package:devtools_app/devtools_app.dart';
import 'package:devtools_app/src/shared/feature_flags.dart';
import 'package:devtools_app/src/shared/primitives/message_bus.dart';
import 'package:devtools_app_shared/utils.dart';
import 'package:devtools_test/devtools_test.dart';
Expand Down Expand Up @@ -338,14 +337,9 @@ void main() {

group('releaseMemory', () {
setUp(() {
FeatureFlags.memoryObserver.setEnabledForTests(true);
prepareTestLogs();
});

tearDown(() {
FeatureFlags.memoryObserver.setEnabledForTests(false);
});

test('releaseMemory - full release', () {
expect(controller.data, isNotEmpty);
expect(controller.filteredData.value, isNotEmpty);
Expand All @@ -366,8 +360,7 @@ void main() {

group('LogData', () {
test(
'pretty prints when details are json, and returns its details otherwise.',
() {
'pretty prints when details are json, and returns its details otherwise.', () {
final nonJson = LogData('some kind', 'Not json', 0);
final json = LogData(
'some kind',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import 'dart:io';

import 'package:devtools_app/devtools_app.dart';
import 'package:devtools_app/src/screens/memory/shared/heap/class_filter.dart';
import 'package:devtools_app/src/shared/feature_flags.dart';
import 'package:devtools_app_shared/utils.dart';
import 'package:devtools_test/devtools_test.dart';
import 'package:devtools_test/helpers.dart';
Expand Down Expand Up @@ -106,13 +105,6 @@ void main() {
);

group('release memory', () {
setUp(() {
FeatureFlags.memoryObserver.setEnabledForTests(true);
});

tearDown(() {
FeatureFlags.memoryObserver.setEnabledForTests(false);
});

testWidgetsWithWindowSize('full release', _windowSize, (
WidgetTester tester,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ void main() {
expect(enableExperiments, false);
expect(enableBeta, false);
expect(isExternalBuild, true);
expect(FeatureFlags.memoryObserver.isEnabled, true);
expect(FeatureFlags.memorySaveLoad.isEnabled, false);
expect(FeatureFlags.networkSaveLoad.isEnabled, true);
expect(FeatureFlags.devToolsExtensions.isEnabled, isExternalBuild);
Expand Down
Loading