I'm running into the same performance issues on Ditto that Pleroma has with StatusView. Namely that to render a status we have to get a full account object, 3 stats on the account, and 3 stats on the status. Quotes and reposts add an extra layer of struggle. We can't cache these entities because of the stats, so to cache we have to break them into smaller pieces, cache those, and then recombine in the response. This is exactly what I plan to do.