Automatically select main isolate instead of the test runner isolate when connecting to test runs
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 48/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- dart
- 领域
- devtools, performance, testing
调研方向
按照报告中的断点和 CPU 分析步骤,使用 bin/main.dart 和 test/cpu_profile_test.dart 重现该问题。首先跟踪 DevTools 如何连接到测试运行并选择一个 isolate;当对测试运行进行分析能够捕获 cpu_profile.calculate() 中的工作,并显示类似独立程序的数据时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
I don't know if this is a DevTools issue or something else, but I'm also not sure how to determine which.
When running tests, CPU profiling never seems to collect any data. For example given a sample project with a bin/main.dart that calls a function in lib that blocks for 5s, and a test that does the same:
bin/main.dart
import 'package:cpu_profile/cpu_profile.dart' as cpu_profile;
void main(List<String> arguments) {
print('starting'); // breakpoint
cpu_profile.calculate();
print('done!'); // breakpoint
}
lib/cpu_profile.dart
int calculate() {
var start = DateTime.now();
while (start.difference(DateTime.now()).inSeconds.abs() < 5) {}
return 6 * 7;
}
test/cpu_profile_test.dart
import 'package:cpu_profile/cpu_profile.dart' as cpu_profile;
import 'package:test/test.dart';
void main() {
test('calculate', () {
print('starting'); // breakpoint
cpu_profile.calculate();
print('done!'); // breakpoint
});
}
For bin/main.dart:
- Open
bin/main.dart - Add breakpoints on the marked lines
- Run in debug mode and hit the first breakpoint
- Open DevTools CPU profile, enable profiling, and start recording
- Resume execution and wait for it to hit the second breakpoint
- Stop CPU profiling and observe the results
Perform the same steps but using the test instead, and the profiler doesn't show any data:
- 主要语言
- Dart
- 星标
- 1.7k
- 派生
- 405
- 平均合并
- 4 天 21 小时
- 30 天内合并 PR
- 15
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
flutter/devtools 的其他 Issue
-
cleanup P1
难度 2/5 1-3 小时 新手友好度 85/100
-
a: quality cost: low P2
难度 2/5 1-3 小时 新手友好度 68/100
-
contributions welcome cross-screen inspector-2.0-polish P2
难度 2/5 1-3 小时 新手友好度 65/100
-
cross-screen P3
难度 2/5 1-3 小时 新手友好度 68/100
-
documentation good first issue P2
难度 1/5 1 小时以内 新手友好度 88/100
相似的 Issue
-
status: needs-triage
难度 2/5 1-3 小时 新手友好度 90/100
a2ui-project/a2ui#2782 ·
-
难度 1/5 1 小时以内 新手友好度 88/100
MaikuB/flutter_local_notifications#2832 · 1 条评论 ·
-
bug triage
难度 2/5 1-3 小时 新手友好度 70/100
fluttercommunity/plus_plugins#3979 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
from.page-issue
难度 1/5 1 小时以内 新手友好度 85/100