diff options
Diffstat (limited to 'src/com/android/loganalysis/parser/CompactMemInfoParser.java')
-rw-r--r-- | src/com/android/loganalysis/parser/CompactMemInfoParser.java | 46 |
1 files changed, 39 insertions, 7 deletions
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; } |