IME
Strava underestimates rolling terrain by about 50% as it just doesn’t have the resolution (relies on USGS data rather than OS) so the contours it counts are too far appart (but will be accurate for a single hill). Note you can chose to ‘correct’ the elevation profile from the GPS in STRAVA, so it depends which data set you’re seeing when you log in.
Barrometers are useless, if the pressure drops or rises during the day you can gain/lose hundreds of meters. But in the short term it can be accurate (as long as there’s not a sudden change in conditions like just after sunrise/set), gaining/losing 500m!
GPS elevation, while not perfect, is actualy probably the best for cycling as it responds quickly, doesnt drift throughout the day, any errors are much smaller than the size of the average hill and as long as the GPS (which it should) is taking an average over a few seconds it’ll miss out any ‘noise’.
The GPS data usualy matches the number you get counting contours on the OS maps within a few percent (so 10’s of meters in 1000m climing rides).