打印主线程堆栈的问题
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 32/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Domaine
- mobile, performance
Piste de recherche
Commencez par StackSampler.doSample, en particulier par l’appel à mCurrentThread.getStackTrace(), et reproduisez le cas signalé en plaçant une attente de 10 secondes avant l’échantillonnage. Comparez la pile capturée avec l’emplacement où le thread principal est bloqué. Le travail est terminé lorsque la question soulevée par l’issue concernant l’exactitude de la pile signalée est vérifiée et que l’échec observé dispose d’une résolution définie.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
有一个问题:
关于打印主线程堆栈的实现:
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)),那么再去获取主线程堆栈信息的时候是不是可能出现获取的堆栈不是真正出问题的地方?
在我自己测试的情况下,已经是无法正常打印堆栈信息。
- Langage dominant
- Java
- Étoiles
- 6.7k
- Forks
- 1k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de markzhai/AndroidPerformanceMonitor
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
markzhai/AndroidPerformanceMonitor#144 · 4 commentaires · 1 réaction ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
markzhai/AndroidPerformanceMonitor#154 · 3 commentaires ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 5/100
markzhai/AndroidPerformanceMonitor#153 · 5 commentaires · 1 réaction ·
-
这个库希望有人能维护一下Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
markzhai/AndroidPerformanceMonitor#149 · 5 commentaires · 3 réactions ·
-
如何保证捕获卡顿堆栈的准确性?Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
Toutes les issues de markzhai/AndroidPerformanceMonitor
Issues similaires
-
pdfium-drift
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
Stirling-Tools/JPDFium#188 ·
Les mainteneurs répondent en général sous 1 jour
-
Manager flashes an empty "errorOccurred" dialog while redirecting a logged-out user to loginOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
openremote/openremote#3487 · 1 commentaire ·
-
Type/Bug U2
Difficulté 2/5 1-3 heures Accessibilité débutants 90/100
wso2/product-is#28675 ·
Les mainteneurs répondent en général sous 1 jour
-
a:bug
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
erupts/erupt#460 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour