Zgodzę się ze wszystkimi innymi. Musisz profilować. Nie ma sensu robić czegokolwiek w swoim kodzie, dopóki nie dowiesz się, co konkretnie powoduje spowolnienie. Próba rozwiązania problemu bez zrozumienia przyczyny jest jak złe samopoczucie i decyzja o wielu operacjach, dopóki nie poczujesz się lepiej. Najpierw zdiagnozuj swój problem. Może to być coś małego jak ustawienie sieciowe lub może to być jedna zła linia w twoim kodzie.
Kilka wskazówek dotyczących profilowania:
Jak profilować swoją aplikację Railsową
Testowanie wydajności aplikacji Railsowych
At the Forge – Profilowanie aplikacji Rails
Po znalezieniu wąskiego gardła możesz dowiedzieć się, co zrobić.
Polecam te filmy:Railslab Scaling Rails
Zmieniony teraz na podstawie wyników prof:
OK. Teraz, gdy widzisz, że Twój problem polega na tym, że wykonujesz jakieś obliczenia za pomocą zapytania opartego na zapętleniu wyników innego zapytania dotyczącego aktywnego rekordu, radzę przyjrzeć się tworzeniu niestandardowej instrukcji SQL łączącej początkowe kryteria wyboru i obliczenia pętli, aby uzyskać to, czego potrzebujesz. Możesz to zdecydowanie przyspieszyć, optymalizując SQL.