2

在某些特定情况下,Android 会在 com.net.myspeechservice 包中杀死我的服务,例如,当手机上有呼叫时,它会杀死该服务。logcat 向我展示了这些统计信息。

因为它似乎很明显因为 CPU 负载而被杀死。

我没有得到的是我的应用程序导致 CPU 消耗的百分比是多少???它根本没有显示出来。

我没有得到以下手段?

Load: 3.13 / 2.78 / 2.26

我如何从这些统计数据中评估我的应用程序造成的百分比。

请指教。

谢谢,

06-21 06:44:35.042: E/ActivityManager(88): ANR in com.net.myspeechservice
06-21 06:44:35.042: E/ActivityManager(88): Reason: Executing service com.net.myspeechservice/.services.ManagementService
06-21 06:44:35.042: E/ActivityManager(88): Load: 3.13 / 2.78 / 2.26
06-21 06:44:35.042: E/ActivityManager(88): CPU usage from 10340ms to 0ms ago:
06-21 06:44:35.042: E/ActivityManager(88):   44% 178/com.android.phone: 43% user + 1.8% kernel / faults: 179 minor
06-21 06:44:35.042: E/ActivityManager(88):   25% 36/surfaceflinger: 21% user + 3.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):   10% 38/mediaserver: 8.1% user + 2.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):   5.1% 1496/android.process.acore: 2.8% user + 2.3% kernel / faults: 3984 minor
06-21 06:44:35.042: E/ActivityManager(88):   3.3% 150/com.android.systemui: 3.3% user + 0% kernel / faults: 6 minor
06-21 06:44:35.042: E/ActivityManager(88):   1.9% 45/adbd: 0.2% user + 1.6% kernel / faults: 420 minor
06-21 06:44:35.042: E/ActivityManager(88):   0.6% 88/system_server: 0.3% user + 0.2% kernel / faults: 1 minor
06-21 06:44:35.042: E/ActivityManager(88):   0% 6391/ekawas.blogspot.com: 0% user + 0% kernel / faults: 40 minor
06-21 06:44:35.042: E/ActivityManager(88):   0.1% 35/rild: 0% user + 0% kernel
06-21 06:44:35.042: E/ActivityManager(88): 100% TOTAL: 82% user + 17% kernel + 0.1% softirq
06-21 06:44:35.042: E/ActivityManager(88): CPU usage from 1521ms to 2139ms later:
06-21 06:44:35.042: E/ActivityManager(88):   41% 178/com.android.phone: 40% user + 1.6% kernel / faults: 1 minor
06-21 06:44:35.042: E/ActivityManager(88):     50% 178/m.android.phone: 48% user + 1.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):     1.6% 235/RILReceiver: 1.6% user + 0% kernel
06-21 06:44:35.042: E/ActivityManager(88):   29% 36/surfaceflinger: 22% user + 6.4% kernel
06-21 06:44:35.042: E/ActivityManager(88):     22% 61/SurfaceFlinger: 19% user + 3.2% kernel
06-21 06:44:35.042: E/ActivityManager(88):     1.6% 36/surfaceflinger: 1.6% user + 0% kernel
06-21 06:44:35.042: E/ActivityManager(88):     1.6% 63/Binder Thread #: 1.6% user + 0% kernel
06-21 06:44:35.042: E/ActivityManager(88):     1.6% 109/Binder Thread #: 0% user + 1.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):     1.6% 1283/Binder Thread #: 0% user + 1.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):   16% 38/mediaserver: 11% user + 4.9% kernel
06-21 06:44:35.042: E/ActivityManager(88):     6.5% 1551/gle.mp3.decoder: 4.9% user + 1.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):     3.2% 1553/AudioTrackThrea: 1.6% user + 1.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):     1.6% 72/AudioOut_1: 0% user + 1.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):     1.6% 1552/OMXCallbackDisp: 0% user + 1.6% kernel
06-21 06:44:35.042: E/ActivityManager(88):   9.6% 88/system_server: 4.8% user + 4.8% kernel
06-21 06:44:35.042: E/ActivityManager(88):     8% 103/ActivityManager: 4.8% user + 3.2% kernel
06-21 06:44:35.042: E/ActivityManager(88):   1.6% 1496/android.process.acore: 0% user + 1.6% kernel / faults: 196 minor
06-21 06:44:35.042: E/ActivityManager(88):     3.3% 1542/ApplicationsPro: 0% user + 3.3% kernel
06-21 06:44:35.042: E/ActivityManager(88): 100% TOTAL: 82% user + 17% kernel
4

1 回答 1

1

负载线向您显示实时操作所有线程所需的 CPU 内核数量。即负载为 1 意味着您在此期间充分利用了单个内核。负载为 5 意味着您需要 5 个核心来实时运行,或者如果您有两个核心,您将使其超载 150%。

Load: X / Y / Z

负载显示为三个数字,以给出不同时间范围内的负载。它通常以 1 分钟、5 分钟和 15 分钟的形式给出。

在不知道您的应用程序包名称的情况下,虽然我无法开始查看日志的其余部分。尽管猜测它是ekawas.blogspot.com(第二个快照中缺少)这表明您的应用程序的 CPU 负载不是问题。然而,这可能是一个内存问题。

于 2012-06-21T02:21:49.397 回答