'use client'; import { useState, useEffect } from 'react'; import { PerformanceMonitor } from '@/lib/performance'; interface PerformanceMetrics { [key: string]: { avg: number; min: number; max: number; count: number; } | null; } export default function PerformancePage() { const [metrics, setMetrics] = useState({}); useEffect(() => { const updateMetrics = () => { setMetrics(PerformanceMonitor.getAllMetrics()); }; // Update metrics every 2 seconds updateMetrics(); const interval = setInterval(updateMetrics, 2000); return () => clearInterval(interval); }, []); return (

Performance Metrics

{Object.keys(metrics).length === 0 ? (

No metrics collected yet. Navigate around the app to see performance data.

) : (
{Object.entries(metrics).map(([label, metric]) => { if (!metric) return null; return (

{label.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase())}

Average {metric.avg.toFixed(2)}ms
Min {metric.min.toFixed(2)}ms
Max 100 ? 'text-red' : 'text-yellow'}`}> {metric.max.toFixed(2)}ms
Count {metric.count}
{/* Performance indicator bar */}
{metric.avg < 50 ? 'Excellent' : metric.avg < 100 ? 'Good' : 'Needs Optimization'}
); })} {/* Performance tips */}

💡 Performance Tips

Response Times

  • < 50ms - Excellent user experience
  • 50-100ms - Good, barely noticeable
  • 100-300ms - Noticeable delay
  • > 300ms - Frustrating for users

Optimization Strategies

  • Monitor fetchData and setActive timings
  • High max values indicate performance spikes
  • Consider caching for frequently called APIs
  • Batch multiple requests when possible
)}
); }