打印主线程堆栈的问题
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 32/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Lĩnh vực
- mobile, performance
Hướng nghiên cứu
Bắt đầu tại StackSampler.doSample, đặc biệt là lời gọi đến mCurrentThread.getStackTrace(), và tái hiện trường hợp đã báo cáo bằng cách đặt thời gian chờ 10 giây trước khi lấy mẫu. So sánh stack đã thu thập với vị trí mà main thread bị block. Được xem là hoàn tất khi mối quan ngại của issue về việc stack được báo cáo có chính xác hay không đã được xác minh và lỗi quan sát được có một hướng giải quyết rõ ràng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
有一个问题:
关于打印主线程堆栈的实现:
StackSampler 的 doSimple 实现如下
`protected void doSample() {
StringBuilder stringBuilder = new StringBuilder();
for (StackTraceElement stackTraceElement : mCurrentThread.getStackTrace()) {
stringBuilder
.append(stackTraceElement.toString())
.append(BlockInfo.SEPARATOR);
}
Log.e(TAG, stringBuilder.toString());
synchronized (sStackMap) {
if (sStackMap.size() == mMaxEntryCount && mMaxEntryCount > 0) {
sStackMap.remove(sStackMap.keySet().iterator().next());
}
sStackMap.put(System.currentTimeMillis(), stringBuilder.toString());
}
}`
当前只是直接 通过调用 mCurrentThread 的 getStackTrace 来获取堆栈信息,但是这个时候如果在这个方法之前有耗时的操作(比如直接sleep(10 * 1000)),那么再去获取主线程堆栈信息的时候是不是可能出现获取的堆栈不是真正出问题的地方?
在我自己测试的情况下,已经是无法正常打印堆栈信息。
- Ngôn ngữ chính
- Java
- Star
- 6.7k
- Fork
- 1k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của markzhai/AndroidPerformanceMonitor
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
markzhai/AndroidPerformanceMonitor#144 · 4 bình luận · 1 reaction ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 52/100
markzhai/AndroidPerformanceMonitor#154 · 2 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 5/100
markzhai/AndroidPerformanceMonitor#153 · 5 bình luận · 1 reaction ·
-
这个库希望有人能维护一下Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
markzhai/AndroidPerformanceMonitor#149 · 5 bình luận · 3 reaction ·
-
如何保证捕获卡顿堆栈的准确性?Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
Tất cả issue của markzhai/AndroidPerformanceMonitor
Issue tương tự
-
Use GHA setup gradle actionCó thể đã có người làm @bric3 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
openhab/openhab-addons#21921 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
jellyfin/jellyfin-androidtv#5885 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
priority:P2 product:orazaka type:bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày