After completing all of the weekly challenges I noticed something interesting in regards to gaining more XP in the efficient way possible. It is simple just play against bots, the games are very sort and you still earn XP but at a faster rate. I have done 10 matches in each game mode against bots and have an average time for each game mode.
These are the average times it would take you to complete a match against bots in the different game modes.
Slayer - 4.56
CTF - 3.00
Strongholds - 2.47
Oddball - 4.53
You would be completing about 12 games an hour.
No XP Boost - 600 XP an hour
2x XP Boost - 1200 XP an hour
Once you have completed all weekly challenges you have no reason to play PvP unless of course for fun, but if you are trying to get XP then farming Bots is the way to go. Since you don’t get any XP from your performance or winning games in PvP your best bet to farm XP is against Bots.
I hope 343i can improve their XP system soon or give extra XP to people winning games in PvP, some of us have already seen people in games not care about the match and just go off and try to complete challenges and they always say the same thing “either way I get my 50 XP” this is a terrible mindset that the community is adopting as the XP system is really bad. I encourage 343i to act fast and roll out small updates to the XP system, like giving 75 XP if you win a match.