# r3f-perf for Performance Monitoring
> Source: [100 Three.js Tips - Utsubo](https://www.utsubo.com/blog/threejs-best-practices-100-tips)
Use r3f-perf for comprehensive React Three Fiber performance monitoring.
## Installation
```bash
npm install r3f-perf
```
## Basic Usage
```jsx
import { Perf } from 'r3f-perf';
function App() {
return (
);
}
```
## Available Props
```jsx
```
## What It Monitors
- **FPS** - Frames per second
- **MS** - Milliseconds per frame
- **CPU** - JavaScript execution time
- **GPU** - WebGL draw time (estimated)
- **Memory** - Geometries, textures, draw calls
- **Matrix Updates** - Number of matrix recalculations
## Conditional Rendering for Production
```jsx
import { Perf } from 'r3f-perf';
function App() {
const isDev = process.env.NODE_ENV === 'development';
return (
);
}
```
## Deep Analyze Mode
For detailed per-object analysis:
```jsx
```
Shows render times for individual objects but has higher CPU overhead.
## Best Practices
1. **Remove in production** - Always hide in production builds
2. **Use sparingly** - Performance monitor itself has overhead
3. **Check draw calls** - Target under 100 draw calls
4. **Monitor memory** - Watch for leaking geometries/textures
5. **Use alongside renderer.info** - For detailed WebGL stats