Ik zal het met alle anderen eens zijn. Je moet profileren. Het heeft geen zin iets met uw code te doen totdat u weet wat de traagheid precies veroorzaakt. Een probleem proberen op te lossen zonder de oorzaak te begrijpen, is als je ziek voelen en besluiten om heel veel operaties te ondergaan totdat je je beter voelt. Stel eerst uw probleem vast. Het kan iets kleins zijn, zoals een netwerkinstelling, of het kan een slechte regel in uw code zijn.
Enkele tips voor profilering:
Hoe u uw Rails-toepassing kunt profileren
Performance Testing Rails-applicaties
At the Forge - Profiling Rails-toepassingen
Zodra je het knelpunt hebt gevonden, kun je uitzoeken wat je moet doen.
Ik raad deze video's aan:Railslab Scaling Rails
Nu herzien op basis van profresultaten:
OKÉ. Nu u kunt zien dat uw probleem is dat u een soort berekening uitvoert met behulp van een query die is gebaseerd op het doorlopen van de resultaten van een andere actieve recordquery, raad ik u aan te kijken naar het bouwen van een aangepaste SQL-instructie die uw initiële selectiecriteria combineert de lusberekening om te krijgen wat je nodig hebt. Je kunt dit zeker versnellen door de SQL te optimaliseren.