Performance View
Analyze and optimize component render performance.
Overview
The Performance View provides detailed metrics and visualizations of component render performance, helping you identify bottlenecks.
API
import { PerformanceView } from 'react-dev-debugger/ui';
<PerformanceView
showRenderCount={true}
showRenderTime={true}
showFlameGraph={true}
warnThreshold={50}
sortBy="renderCount" // or "renderTime", "lastRender"
/>
Basic Example
import { PerformanceView } from 'react-dev-debugger/ui';
function DebugPanel() {
return (
<div>
<h2>Performance Metrics</h2>
<PerformanceView
showFlameGraph={true}
warnThreshold={30}
/>
</div>
);
}
Features
- Render Count: How many times each component rendered
- Render Time: Time taken for each render
- Flame Graph: Visual performance profile
- Performance Warnings: Alert on excessive renders
- Comparison Mode: Compare before/after optimization
- Export Data: Export metrics for analysis
Metrics
Live Playground
Performance Controls
Total Renders: 33
Performance Metrics
TodoList ⚠️
8 renders25ms avg
Last: 30msTotal: 200ms
App
5 renders12ms avg
Last: 15msTotal: 60ms
Sidebar
2 renders5ms avg
Last: 6msTotal: 10ms
Counter
15 renders4ms avg
Last: 5msTotal: 60ms
Header
3 renders3ms avg
Last: 2msTotal: 9ms
Summary
Total Components: 5
Slow Renders: 1
Avg Time: 10ms
Total Time: 339ms
PerformanceView Usage Example
import { PerformanceView } from 'react-dev-debugger/ui';
function DebugPanel() {
return (
<PerformanceView
showRenderCount={true}
showRenderTime={true}
showFlameGraph={true}
warnThreshold={20}
sortBy="renderTime"
onComponentClick={(component) => {
console.log('Clicked:', component);
}}
/>
);
}Component Metrics
<PerformanceView
metrics={[
'renderCount',
'avgRenderTime',
'maxRenderTime',
'totalRenderTime',
'lastRender',
]}
showPercentiles={true}
/>
Flame Graph
Visualize render hierarchy:
<PerformanceView
view="flamegraph"
colorScheme="performance" // red=slow, green=fast
minDuration={1} // Hide renders < 1ms
/>
Optimization Tips
The view provides suggestions:
- Components rendering too often
- Slow render durations
- Missing memoization opportunities
- Unnecessary prop updates
Next Steps
- useRenderTracking - Track renders
- useWhyDidYouUpdate - Debug renders
- Render Tracker - Core tracking