Every 2-3 years for a GPU, i never really go high-end as i'm now just a casual gamer so every 2 generations i replace my "mid-range" GPU. CPU not so much, I will really only replace it when i do a complete new build which happens around every 5 years or so. RAM/FANS and PSU almost never unless they break, a good PSU can last upward of 5+ years especially those with 10 year warranties from reliable brands such as Corsair/Seasonic.