ProfilingCache.js — react Source File
Architecture documentation for ProfilingCache.js, a javascript file in the react codebase. 6 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR af7aba1b_57c5_9030_4011_bcfaa9c37e21["ProfilingCache.js"] 85373914_42ee_ed07_c5b1_5dac4e356a82["ProfilerStore.js"] af7aba1b_57c5_9030_4011_bcfaa9c37e21 --> 85373914_42ee_ed07_c5b1_5dac4e356a82 3fc29544_4278_4ce9_4b80_afb09671b539["ProfilerStore"] af7aba1b_57c5_9030_4011_bcfaa9c37e21 --> 3fc29544_4278_4ce9_4b80_afb09671b539 f45a3890_a0d5_bcec_f40c_e8f3d0753f19["CommitTreeBuilder"] af7aba1b_57c5_9030_4011_bcfaa9c37e21 --> f45a3890_a0d5_bcec_f40c_e8f3d0753f19 a2825344_2d74_8da6_d38e_93ccd4e19cf0["FlamegraphChartBuilder"] af7aba1b_57c5_9030_4011_bcfaa9c37e21 --> a2825344_2d74_8da6_d38e_93ccd4e19cf0 5bcc5fc3_75f8_537a_7461_c5ba736ba8bb["RankedChartBuilder"] af7aba1b_57c5_9030_4011_bcfaa9c37e21 --> 5bcc5fc3_75f8_537a_7461_c5ba736ba8bb 3b8e08d7_68a2_d5e4_cf40_47447be1f73a["types"] af7aba1b_57c5_9030_4011_bcfaa9c37e21 --> 3b8e08d7_68a2_d5e4_cf40_47447be1f73a 85373914_42ee_ed07_c5b1_5dac4e356a82["ProfilerStore.js"] 85373914_42ee_ed07_c5b1_5dac4e356a82 --> af7aba1b_57c5_9030_4011_bcfaa9c37e21 style af7aba1b_57c5_9030_4011_bcfaa9c37e21 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
import ProfilerStore from './ProfilerStore';
import {
getCommitTree,
invalidateCommitTrees,
} from 'react-devtools-shared/src/devtools/views/Profiler/CommitTreeBuilder';
import {
getChartData as getFlamegraphChartData,
invalidateChartData as invalidateFlamegraphChartData,
} from 'react-devtools-shared/src/devtools/views/Profiler/FlamegraphChartBuilder';
import {
getChartData as getRankedChartData,
invalidateChartData as invalidateRankedChartData,
} from 'react-devtools-shared/src/devtools/views/Profiler/RankedChartBuilder';
import type {CommitTree} from 'react-devtools-shared/src/devtools/views/Profiler/types';
import type {ChartData as FlamegraphChartData} from 'react-devtools-shared/src/devtools/views/Profiler/FlamegraphChartBuilder';
import type {ChartData as RankedChartData} from 'react-devtools-shared/src/devtools/views/Profiler/RankedChartBuilder';
export default class ProfilingCache {
_fiberCommits: Map<number, Array<number>> = new Map();
_profilerStore: ProfilerStore;
constructor(profilerStore: ProfilerStore) {
this._profilerStore = profilerStore;
}
getCommitTree: ({commitIndex: number, rootID: number}) => CommitTree = ({
commitIndex,
rootID,
}) =>
getCommitTree({
commitIndex,
profilerStore: this._profilerStore,
rootID,
});
getFiberCommits: ({fiberID: number, rootID: number}) => Array<number> = ({
fiberID,
rootID,
}) => {
const cachedFiberCommits = this._fiberCommits.get(fiberID);
if (cachedFiberCommits != null) {
return cachedFiberCommits;
}
const fiberCommits = [];
const dataForRoot = this._profilerStore.getDataForRoot(rootID);
dataForRoot.commitData.forEach((commitDatum, commitIndex) => {
if (commitDatum.fiberActualDurations.has(fiberID)) {
fiberCommits.push(commitIndex);
}
});
this._fiberCommits.set(fiberID, fiberCommits);
return fiberCommits;
};
getFlamegraphChartData: ({
commitIndex: number,
commitTree: CommitTree,
rootID: number,
}) => FlamegraphChartData = ({commitIndex, commitTree, rootID}) =>
getFlamegraphChartData({
commitIndex,
commitTree,
profilerStore: this._profilerStore,
rootID,
});
getRankedChartData: ({
commitIndex: number,
commitTree: CommitTree,
rootID: number,
}) => RankedChartData = ({commitIndex, commitTree, rootID}) =>
getRankedChartData({
commitIndex,
commitTree,
profilerStore: this._profilerStore,
rootID,
});
invalidate() {
this._fiberCommits.clear();
invalidateCommitTrees();
invalidateFlamegraphChartData();
invalidateRankedChartData();
}
}
Domain
Dependencies
- CommitTreeBuilder
- FlamegraphChartBuilder
- ProfilerStore
- ProfilerStore.js
- RankedChartBuilder
- types
Source
Frequently Asked Questions
What does ProfilingCache.js do?
ProfilingCache.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain.
What does ProfilingCache.js depend on?
ProfilingCache.js imports 6 module(s): CommitTreeBuilder, FlamegraphChartBuilder, ProfilerStore, ProfilerStore.js, RankedChartBuilder, types.
What files import ProfilingCache.js?
ProfilingCache.js is imported by 1 file(s): ProfilerStore.js.
Where is ProfilingCache.js in the architecture?
ProfilingCache.js is located at packages/react-devtools-shared/src/devtools/ProfilingCache.js (domain: BabelCompiler, directory: packages/react-devtools-shared/src/devtools).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free