Ok - let's take this one piece at a time.
1. As far as we have been able to tell is that we have nested serializers for certain aspects of the application - those went from loading in 3-4 s to over 40 s in different places. It's hard to exactly show, however the number of database requests skyrocketed as well. But our theory is currently that the related models (foreign keys) are loaded strangely.
2. We aren't exactly sure WHERE the bottlenecks are happening - that is also why the question is wide and generic.
3. We don't have any profiling tools running in production, however the figures we do have are on development.
4. We upgraded from the latest version of 2.2 to 3.0 in django and upgraded one minor version of DRF at the same time.
The main issue is that we got performance issues - major performance issues - while upgrading. This shouldn't be possible - not in the way that it happened. What worries us is if this happens again and we don't see this BEFORE a production release. That was the main problem we had.
We have now done a lot of workarounds in place where the code was slow - but we would still like to understand where the problems occur so that we don't get this surprise again.
My question was more generic - because we wanted to see if anyone else had experienced the same problems when upgrading.
The strangest thing now is that even if we downgrade the database (reverse migrations), downgrade the code and so on - the requests are still slow - where they haven't been previously.