!7 sclass ModuleInfo { S name; long code, data; } module ModuleRAMSizes extends DynObjectTable { start { itemToMap = func(ModuleInfo m) -> Map { litorderedmap( Name := m.name, "Code (+submodules)" := str_toM_questionMarkIfZero(m.code), "Data" := str_toM_questionMarkIfZero(m.data), "Sum" := str_toM_questionMarkIfZero(m.code + m.data)) }; doEvery(dm_osStarting() ? 10.0 : 0.0, 60.0, r calcIt); } void calcIt { temp enter(); new L l; time "Calculate Module Sizes" { for (O mod : dm_listModules()) { long code = 0, data = 0; pcall-short { code = dm_moduleCodeSizeWithSubModules(mod); } pcall-short { data = dm_moduleSize_debug(mod); } l.add(nu(ModuleInfo, name := dm_moduleName(mod), +code, +data)); } } setData(sortedByCalculatedFieldDesc(func(ModuleInfo m) { m.code+m.data }, l)); } }