diff options
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/loganalysis/item/CompactMemInfoItem.java | 54 | ||||
-rw-r--r-- | src/com/android/loganalysis/parser/CompactMemInfoParser.java | 46 |
2 files changed, 92 insertions, 8 deletions
diff --git a/src/com/android/loganalysis/item/CompactMemInfoItem.java b/src/com/android/loganalysis/item/CompactMemInfoItem.java index 9c52b88..cf9bff9 100644 --- a/src/com/android/loganalysis/item/CompactMemInfoItem.java +++ b/src/com/android/loganalysis/item/CompactMemInfoItem.java @@ -37,6 +37,10 @@ public class CompactMemInfoItem implements IItem { public static final String ACTIVITIES_JSON_KEY = "activities"; public static final String PROCESSES_JSON_KEY = "processes"; public static final String LOST_RAM_JSON_KEY = "lostRam"; + public static final String TOTAL_ZRAM_JSON_KEY = "totalZram"; + public static final String FREE_SWAP_ZRAM_JSON_KEY = "freeSwapZram"; + public static final String FREE_RAM_JSON_KEY = "freeRam"; + public static final String TUNING_LEVEL_JSON_KEY = "tuningLevel"; /** Constants for attributes HashMap */ private static final String NAME_ATTR_KEY = "name"; private static final String PSS_ATTR_KEY = "pss"; @@ -45,7 +49,11 @@ public class CompactMemInfoItem implements IItem { private static final String ACTIVITIES_ATTR_KEY = "activities"; private Map<Integer, Map<String, Object>> mPids = new HashMap<Integer, Map<String, Object>>(); + private long mFreeRam; + private long mFreeSwapZram; private long mLostRam; + private long mTotalZram; + private long mTuningLevel; @Override public IItem merge(IItem other) throws ConflictingItemException { @@ -78,8 +86,12 @@ public class CompactMemInfoItem implements IItem { } try { object.put(PROCESSES_JSON_KEY, processes); - // Add the lost RAM field + // Add the additional non-process field object.put(LOST_RAM_JSON_KEY, getLostRam()); + object.put(TOTAL_ZRAM_JSON_KEY, getTotalZram()); + object.put(FREE_SWAP_ZRAM_JSON_KEY, getFreeSwapZram()); + object.put(FREE_RAM_JSON_KEY, getFreeRam()); + object.put(TUNING_LEVEL_JSON_KEY, getTuningLevel()); } catch (JSONException e) { // ignore } @@ -161,4 +173,44 @@ public class CompactMemInfoItem implements IItem { public long getLostRam() { return mLostRam; } + + /** Sets the free RAM field */ + public void setFreeRam(long freeRam) { + mFreeRam = freeRam; + } + + /** Returns the free RAM field */ + public long getFreeRam() { + return mFreeRam; + } + + /** Sets the total ZRAM field */ + public void setTotalZram(long totalZram) { + mTotalZram = totalZram; + } + + /** Returns the total ZRAM field */ + public long getTotalZram() { + return mTotalZram; + } + + /** Sets the free swap ZRAM field */ + public void setFreeSwapZram(long freeSwapZram) { + mFreeSwapZram = freeSwapZram; + } + + /** Returns the free swap ZRAM field */ + public long getFreeSwapZram() { + return mFreeSwapZram; + } + + /** Sets the tuning level field */ + public void setTuningLevel(long tuningLevel) { + mTuningLevel = tuningLevel; + } + + /** Returns the tuning level field */ + public long getTuningLevel() { + return mTuningLevel; + } } diff --git a/src/com/android/loganalysis/parser/CompactMemInfoParser.java b/src/com/android/loganalysis/parser/CompactMemInfoParser.java index 788cd8b..263cdf1 100644 --- a/src/com/android/loganalysis/parser/CompactMemInfoParser.java +++ b/src/com/android/loganalysis/parser/CompactMemInfoParser.java @@ -37,10 +37,12 @@ import java.util.regex.Pattern; * */ public class CompactMemInfoParser implements IParser { - private static final Pattern PROC_PREFIX = Pattern.compile( - "proc,(\\w+),([a-zA-Z_0-9\\.]+),(\\d+),(\\d+),((\\S+),)?(.*)"); - private static final Pattern LOST_RAM_PREFIX = Pattern.compile( - "lostram,(.+)"); + private static final Pattern PROC_PATTERN = + Pattern.compile("proc,(\\w+),([a-zA-Z_0-9\\.]+),(\\d+),(\\d+),((\\S+),)?(.*)"); + private static final Pattern LOST_RAM_PATTERN = Pattern.compile("lostram,(\\d+)"); + private static final Pattern RAM_PATTERN = Pattern.compile("ram,(\\d+),(\\d+),(\\d+)"); + private static final Pattern ZRAM_PATTERN = Pattern.compile("zram,(\\d+),(\\d+),(\\d+)"); + private static final Pattern TUNING_PATTERN = Pattern.compile("tuning,(\\d+),(\\d+),(\\d+).*"); /** * Parse compact meminfo log. Output a CompactMemInfoItem which contains @@ -50,7 +52,7 @@ public class CompactMemInfoParser implements IParser { public CompactMemInfoItem parse(List<String> lines) { CompactMemInfoItem item = new CompactMemInfoItem(); for (String line : lines) { - Matcher m = PROC_PREFIX.matcher(line); + Matcher m = PROC_PATTERN.matcher(line); if (m.matches()) { String type = m.group(1); String name = m.group(2); @@ -69,9 +71,8 @@ public class CompactMemInfoParser implements IParser { } } - m = LOST_RAM_PREFIX.matcher(line); + m = LOST_RAM_PATTERN.matcher(line); if (m.matches()) { - String name = "Lost RAM"; try { long lostRam = Long.parseLong(m.group(1)); item.setLostRam(lostRam); @@ -80,6 +81,37 @@ public class CompactMemInfoParser implements IParser { // ignore exception } } + + m = RAM_PATTERN.matcher(line); + if (m.matches()) { + try { + item.setFreeRam(Long.parseLong(m.group(2))); + continue; + } catch (NumberFormatException nfe) { + // ignore exception + } + } + + m = ZRAM_PATTERN.matcher(line); + if (m.matches()) { + try { + item.setTotalZram(Long.parseLong(m.group(1))); + item.setFreeSwapZram(Long.parseLong(m.group(3))); + continue; + } catch (NumberFormatException nfe) { + // ignore exception + } + } + + m = TUNING_PATTERN.matcher(line); + if (m.matches()) { + try { + item.setTuningLevel(Long.parseLong(m.group(3))); + continue; + } catch (NumberFormatException nfe) { + // ignore exception + } + } } return item; } |