MCPcopy Index your code
hub / github.com/CapSoftware/Cap / buildSample

Function buildSample

apps/desktop/scripts/desktop-memory-soak-lib.js:198–245  ·  view source on GitHub ↗
(processes, tracked, options = DEFAULTS)

Source from the content-addressed store, hash-verified

196}
197
198export function buildSample(processes, tracked, options = DEFAULTS) {
199 const discoveredTracked = discoverTrackedProcesses(
200 processes,
201 tracked,
202 options,
203 );
204 const liveTracked = new Map();
205 let capTotalKb = 0;
206 let mediaTotalKb = 0;
207 let windowServerTotalKb = 0;
208 const processRows = [];
209 const newPids = [];
210
211 for (const [pid, trackedProcess] of discoveredTracked.entries()) {
212 const liveProcess = processes.find(
213 (processInfo) => processInfo.pid === pid,
214 );
215
216 if (!liveProcess) continue;
217
218 const row = {
219 ...trackedProcess,
220 etimes: liveProcess.etimes,
221 rssKb: liveProcess.rssKb,
222 vszKb: liveProcess.vszKb,
223 };
224
225 liveTracked.set(pid, row);
226 processRows.push(row);
227
228 if (row.group === "cap") capTotalKb += row.rssKb;
229 if (row.group === "media") mediaTotalKb += row.rssKb;
230 if (row.group === "system") windowServerTotalKb += row.rssKb;
231 if (row.isNew) newPids.push(pid);
232 }
233
234 processRows.sort((left, right) => right.rssKb - left.rssKb);
235
236 return {
237 capTotalKb,
238 grandTotalKb: capTotalKb + mediaTotalKb + windowServerTotalKb,
239 mediaTotalKb,
240 newPids: newPids.sort((left, right) => left - right),
241 processRows,
242 tracked: liveTracked,
243 windowServerTotalKb,
244 };
245}
246
247export function pickSettledSample(
248 samples,

Callers 2

collectPhaseFunction · 0.90

Calls 1

discoverTrackedProcessesFunction · 0.85

Tested by

no test coverage detected