一次block在不同时间打印多个相同的堆栈信息
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
調査の方向性
まず、このレポート内で繰り返されているスタックサンプルとタイムスタンプを調べます。特に、ClassUtils.getFileNameByPackageName と LogisticsCenter.init を通る経路を確認してください。ブロック中に monitor がスタック情報をどのように取得して出力するかを追跡し、その後、動作を再現して、同一のスタックが 1 つのブロックに対して繰り返し出力されないことを確認してください。
索引モデルが issue の本文から書いたものです。
説明
2017-10-29 10:32:17(write log time)
qua = unknown
versionName = 4.9.0
versionCode = 490
imei = 863360022872042
uid = uid
network = unknown
model = MI 3W
api-level = 19 4.4.4
cpu-core = 4
process = com.pingan.lifeinsurance
freeMemory = 747180
totalMemory = 1898220
time = 5050
thread-time = 589
time-start = 10-29 10:32:12.601
time-end = 10-29 10:32:17.651
cpu-busy = false
cpu-rate = 10-29 10:32:14.406 cpu:52% app:2% [user:45% system:3% ioWait:3% ]
10-29 10:32:15.410 cpu:55% app:80% [user:30% system:9% ioWait:15% ]
10-29 10:32:16.411 cpu:59% app:0% [user:43% system:6% ioWait:10% ]
10-29 10:32:17.413 cpu:57% app:76% [user:34% system:10% ioWait:12% ]
stack = 10-29 10:32:13.403
dalvik.system.DexFile.openDexFileNative(Native Method)
dalvik.system.DexFile.openDexFile(DexFile.java:296)
dalvik.system.DexFile.(DexFile.java:111)
dalvik.system.DexFile.loadDex(DexFile.java:151)
com.alibaba.android.arouter.utils.ClassUtils.getFileNameByPackageName(ClassUtils.java:62)
com.alibaba.android.arouter.core.LogisticsCenter.init(LogisticsCenter.java:61)
com.alibaba.android.arouter.launcher._ARouter.init(_ARouter.java:60)
com.alibaba.android.arouter.launcher.ARouter.init(ARouter.java:41)
com.pingan.lifeinsurance.framework.router.PARouter.initRouter(PARouter.java:53)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:160)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:148)
com.pingan.lifeinsurance.business.index.fragment.IndexFragment.onBannerClick(IndexFragment.java:622)
com.pingan.lifeinsurance.business.index.adapter.IndexBannerAdapter$1.onCustomClick(IndexBannerAdapter.java:42)
com.pingan.lifeinsurance.baselibrary.function.click.BaseOnClickListener.onClick(BaseOnClickListener.java:14)
android.view.View.performClick(View.java:4444)
android.view.View$PerformClick.run(View.java:18440)
android.os.Handler.handleCallback(Handler.java:733)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:136)
android.app.ActivityThread.main(ActivityThread.java:5034)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
dalvik.system.NativeStart.main(Native Method)
10-29 10:32:14.405
dalvik.system.DexFile.openDexFileNative(Native Method)
dalvik.system.DexFile.openDexFile(DexFile.java:296)
dalvik.system.DexFile.(DexFile.java:111)
dalvik.system.DexFile.loadDex(DexFile.java:151)
com.alibaba.android.arouter.utils.ClassUtils.getFileNameByPackageName(ClassUtils.java:62)
com.alibaba.android.arouter.core.LogisticsCenter.init(LogisticsCenter.java:61)
com.alibaba.android.arouter.launcher._ARouter.init(_ARouter.java:60)
com.alibaba.android.arouter.launcher.ARouter.init(ARouter.java:41)
com.pingan.lifeinsurance.framework.router.PARouter.initRouter(PARouter.java:53)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:160)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:148)
com.pingan.lifeinsurance.business.index.fragment.IndexFragment.onBannerClick(IndexFragment.java:622)
com.pingan.lifeinsurance.business.index.adapter.IndexBannerAdapter$1.onCustomClick(IndexBannerAdapter.java:42)
com.pingan.lifeinsurance.baselibrary.function.click.BaseOnClickListener.onClick(BaseOnClickListener.java:14)
android.view.View.performClick(View.java:4444)
android.view.View$PerformClick.run(View.java:18440)
android.os.Handler.handleCallback(Handler.java:733)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:136)
android.app.ActivityThread.main(ActivityThread.java:5034)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
dalvik.system.NativeStart.main(Native Method)
10-29 10:32:15.408
dalvik.system.DexFile.openDexFileNative(Native Method)
dalvik.system.DexFile.openDexFile(DexFile.java:296)
dalvik.system.DexFile.(DexFile.java:111)
dalvik.system.DexFile.loadDex(DexFile.java:151)
com.alibaba.android.arouter.utils.ClassUtils.getFileNameByPackageName(ClassUtils.java:62)
com.alibaba.android.arouter.core.LogisticsCenter.init(LogisticsCenter.java:61)
com.alibaba.android.arouter.launcher._ARouter.init(_ARouter.java:60)
com.alibaba.android.arouter.launcher.ARouter.init(ARouter.java:41)
com.pingan.lifeinsurance.framework.router.PARouter.initRouter(PARouter.java:53)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:160)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:148)
com.pingan.lifeinsurance.business.index.fragment.IndexFragment.onBannerClick(IndexFragment.java:622)
com.pingan.lifeinsurance.business.index.adapter.IndexBannerAdapter$1.onCustomClick(IndexBannerAdapter.java:42)
com.pingan.lifeinsurance.baselibrary.function.click.BaseOnClickListener.onClick(BaseOnClickListener.java:14)
android.view.View.performClick(View.java:4444)
android.view.View$PerformClick.run(View.java:18440)
android.os.Handler.handleCallback(Handler.java:733)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:136)
android.app.ActivityThread.main(ActivityThread.java:5034)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
dalvik.system.NativeStart.main(Native Method)
10-29 10:32:16.410
dalvik.system.DexFile.openDexFileNative(Native Method)
dalvik.system.DexFile.openDexFile(DexFile.java:296)
dalvik.system.DexFile.(DexFile.java:111)
dalvik.system.DexFile.loadDex(DexFile.java:151)
com.alibaba.android.arouter.utils.ClassUtils.getFileNameByPackageName(ClassUtils.java:62)
com.alibaba.android.arouter.core.LogisticsCenter.init(LogisticsCenter.java:61)
com.alibaba.android.arouter.launcher._ARouter.init(_ARouter.java:60)
com.alibaba.android.arouter.launcher.ARouter.init(ARouter.java:41)
com.pingan.lifeinsurance.framework.router.PARouter.initRouter(PARouter.java:53)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:160)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:148)
com.pingan.lifeinsurance.business.index.fragment.IndexFragment.onBannerClick(IndexFragment.java:622)
com.pingan.lifeinsurance.business.index.adapter.IndexBannerAdapter$1.onCustomClick(IndexBannerAdapter.java:42)
com.pingan.lifeinsurance.baselibrary.function.click.BaseOnClickListener.onClick(BaseOnClickListener.java:14)
android.view.View.performClick(View.java:4444)
android.view.View$PerformClick.run(View.java:18440)
android.os.Handler.handleCallback(Handler.java:733)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:136)
android.app.ActivityThread.main(ActivityThread.java:5034)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
dalvik.system.NativeStart.main(Native Method)
10-29 10:32:17.412
dalvik.system.DexFile.openDexFileNative(Native Method)
dalvik.system.DexFile.openDexFile(DexFile.java:296)
dalvik.system.DexFile.(DexFile.java:111)
dalvik.system.DexFile.loadDex(DexFile.java:151)
com.alibaba.android.arouter.utils.ClassUtils.getFileNameByPackageName(ClassUtils.java:62)
com.alibaba.android.arouter.core.LogisticsCenter.init(LogisticsCenter.java:61)
com.alibaba.android.arouter.launcher._ARouter.init(_ARouter.java:60)
com.alibaba.android.arouter.launcher.ARouter.init(ARouter.java:41)
com.pingan.lifeinsurance.framework.router.PARouter.initRouter(PARouter.java:53)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:160)
com.pingan.lifeinsurance.framework.router.PARouter.navigation(PARouter.java:148)
com.pingan.lifeinsurance.business.index.fragment.IndexFragment.onBannerClick(IndexFragment.java:622)
com.pingan.lifeinsurance.business.index.adapter.IndexBannerAdapter$1.onCustomClick(IndexBannerAdapter.java:42)
com.pingan.lifeinsurance.baselibrary.function.click.BaseOnClickListener.onClick(BaseOnClickListener.java:14)
android.view.View.performClick(View.java:4444)
android.view.View$PerformClick.run(View.java:18440)
android.os.Handler.handleCallback(Handler.java:733)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:136)
android.app.ActivityThread.main(ActivityThread.java:5034)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
dalvik.system.NativeStart.main(Native Method)
- 主要言語
- Java
- スター
- 6.7k
- フォーク
- 1k
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
markzhai/AndroidPerformanceMonitor のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
markzhai/AndroidPerformanceMonitor#144 · コメント 4 件 · リアクション 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 52/100
markzhai/AndroidPerformanceMonitor#154 · コメント 3 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 5/100
markzhai/AndroidPerformanceMonitor#153 · コメント 5 件 · リアクション 1 件 ·
-
这个库希望有人能维护一下オープン
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
markzhai/AndroidPerformanceMonitor#149 · コメント 5 件 · リアクション 3 件 ·
-
如何保证捕获卡顿堆栈的准确性?オープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
markzhai/AndroidPerformanceMonitor の issue をすべて見る
似ている issue
-
status: waiting-for-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
AOT compilation fails for derived delete queries returning Set対応中かも @ryujungkyun が今日担当しました。 オープンstatus: waiting-for-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
spring-projects/spring-data-jpa#4387 ·
メンテナーはふだん 3 日以内に返信
-
:ml/Transform >bug Team:ML
難易度 2/5 半日 初心者へのやさしさ 64/100
elastic/elasticsearch#161960 · コメント 2 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信