| 8188 | } |
| 8189 | |
| 8190 | void BfCompiler::ReportMemory(MemReporter* memReporter) |
| 8191 | { |
| 8192 | AutoCrit crit(mSystem->mDataLock); |
| 8193 | |
| 8194 | { |
| 8195 | AutoMemReporter autoMemReporter(memReporter, "Context"); |
| 8196 | mContext->ReportMemory(memReporter); |
| 8197 | } |
| 8198 | |
| 8199 | for (auto type : mContext->mResolvedTypes) |
| 8200 | { |
| 8201 | AutoMemReporter autoMemReporter(memReporter, "Types"); |
| 8202 | type->ReportMemory(memReporter); |
| 8203 | } |
| 8204 | |
| 8205 | for (auto module : mContext->mModules) |
| 8206 | { |
| 8207 | AutoMemReporter autoMemReporter(memReporter, "Modules"); |
| 8208 | module->ReportMemory(memReporter); |
| 8209 | } |
| 8210 | |
| 8211 | { |
| 8212 | AutoMemReporter autoMemReporter(memReporter, "ScratchModule"); |
| 8213 | mContext->mScratchModule->ReportMemory(memReporter); |
| 8214 | } |
| 8215 | |
| 8216 | for (auto vdataModule : mVDataModules) |
| 8217 | { |
| 8218 | AutoMemReporter autoMemReporter(memReporter, "VDataModules"); |
| 8219 | vdataModule->ReportMemory(memReporter); |
| 8220 | } |
| 8221 | |
| 8222 | if (mHotData != NULL) |
| 8223 | { |
| 8224 | AutoMemReporter autoMemReporter(memReporter, "HotData"); |
| 8225 | memReporter->Add(sizeof(HotData)); |
| 8226 | memReporter->AddMap(mHotData->mMethodMap); |
| 8227 | for (auto& kv : mHotData->mMethodMap) |
| 8228 | { |
| 8229 | memReporter->AddStr(kv.mKey); |
| 8230 | memReporter->Add(sizeof(BfHotMethod)); |
| 8231 | memReporter->AddVec(kv.mValue->mReferences); |
| 8232 | } |
| 8233 | } |
| 8234 | |
| 8235 | if (mHotState != NULL) |
| 8236 | { |
| 8237 | AutoMemReporter autoMemReporter(memReporter, "HotState"); |
| 8238 | memReporter->Add(sizeof(HotState)); |
| 8239 | memReporter->AddVec(mHotState->mQueuedOutFiles, false); |
| 8240 | memReporter->AddHashSet(mHotState->mSlotDefineTypeIds, false); |
| 8241 | memReporter->AddHashSet(mHotState->mPendingDataChanges, false); |
| 8242 | memReporter->AddMap(mHotState->mDeletedTypeNameMap, false); |
| 8243 | for (auto& kv : mHotState->mDeletedTypeNameMap) |
| 8244 | { |
| 8245 | memReporter->AddStr(kv.mKey, false); |
| 8246 | } |
| 8247 | } |