It's different for each Pokemon really. There's a few factors that determine how good a Pokemon is in PvP. For one, defensively oriented stats are preferable (lead to higher TDO). Aside from that, movesets and typing are also relevant. So in some cases, the evolved form has more defensive stats and/or a better moveset (like Altaria for example). In other cases, the pre-evolution does (like Munchlax in the great league, for example). This is really what makes the CP caps of the great and ultra leagues interesting. The best way to determine it is generally to just check the DPS/TDO spreadsheet and see which has higher TDO.
GamePress
Maxed pre-evolutions vs. underleveled evolutions
I've been trying to formulate teams for Great & Ultra Leagues, and have seen conflicting information on how scaling of stats works with CP.
For instance, is it better to use a level 27.5 Munchlax in Great League, or a sub-1500 Snorlax? Similarly, should I max out my Piloswine for use in Ultra League, or wait for Mamoswine's release?
Some sites are saying that a maxed out 'mon is better than an underleveled evolution, even with worse stats. Is there a way for me to compare pokemon stats at each level?