in util-jvm/src/main/scala/com/twitter/jvm/Allocations.scala [116:140]
def edenMemoryUsageFrom(any: Any): Option[MemoryUsage] = {
if (!any.isInstanceOf[TabularData])
return None
val tabData = any.asInstanceOf[TabularData]
val edenKeys: mutable.Set[juList[_]] = tabData.keySet.asScala.collect {
case ks: juList[_] if ks.asScala.headOption.exists {
case s: String => s.contains("Eden")
case _ => false
} =>
ks
}
val memoryUsages = edenKeys.flatMap { k =>
tabData.get(k.toArray) match {
case cd: CompositeData if cd.containsKey("value") =>
cd.get("value") match {
case vcd: CompositeData => Some(MemoryUsage.from(vcd))
case _ => None
}
case _ => None
}
}
memoryUsages.headOption
}