adb shell dumpsys cpuinfo
показва информация от /proc/stat и /proc/(pid)/stat
1. какво означават грешките тук?
Грешки на страницата.
"незначителни" за незначителни грешки.
от ProcessCpuTracker.java
collectStats(...) {
...
final long[] procStats = mProcessStatsData;
if (!Process.readProcFile(st.statFile.toString(),
PROCESS_STATS_FORMAT, null, procStats, null)) {
continue;
}
...
final long minfaults = procStats[PROCESS_STAT_MINOR_FAULTS];
final long majfaults = procStats[PROCESS_STAT_MAJOR_FAULTS];
}
private static final int[] PROCESS_STATS_FORMAT = new int[] {
...
PROC_SPACE_TERM|PROC_OUT_LONG, // 10: minor faults
...
PROC_SPACE_TERM|PROC_OUT_LONG, // 12: major faults
...
};
Те са /proc/(pid)/stat data[9] и data[11].
2. те не се събират до 100
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
(Свързана страница от тълкуване на dumpsys cpuinfo )
При многопроцесорна система сумата може да бъде повече от 100%.
3. тези процентни стойности средни ли са за съответните процеси
от ProcessCpuTracker.java
printProcessCPU(...) {
...
printRatio(pw, user+system+iowait+irq+softIrq, totalTime);
...
}
Отпечатва се 2-ри параметър(user+...) / 3-ти параметър(totalTime).
4. Използване на процесора от 23770ms до 16630ms преди
Времената се основават на времената, когато статистическите данни, кеширани от ProcessCpuTracker, се актуализират.
от ProcessCpuTracker.java
update() {
final long nowUptime = SystemClock.uptimeMillis();
...
mLastSampleTime = mCurrentSampleTime;
mCurrentSampleTime = nowUptime;
...
}
[Свързани източници]
https://android.googlesource.com/platform/frameworks/native/+/master/cmds/dumpsys/dumpsys.cpp
main() => service->dump()
https://github.com/android/platform_frameworks_base/blob/master/services/core/java/com/android/server/am/ActivityManagerService.java
CpuBinder.dump() се нарича
mProcessCpuThread актуализира кеша за статистика. (извиква се updateCpuStatsNow())
https://github.com/android/platform_frameworks_base/blob/master/core/java/com/android/internal/os/ProcessCpuTracker.java
printCurrentLoad() отпечатва натоварването на процесора
printCurrentState() отпечатва статистики за процес
person
Toris
schedule
22.10.2016