Wykonanie dużego zapytania dotyczącego aktywnych kwerend z dużą ilością obiektów peryferyjnych.Aktywne ładowanie wstępne powodujące pogorszenie wydajności po wystąpieniu skutku
Dodanie ".includes" (wstępne ładowanie) znacznie przyspiesza poprzez zgniatanie wszystkich N + 1 z .
Strona czym świadczy szybki i pluje na to uwagę w dziennikach:
Completed 200 OK in 504ms (Views: 104.2ms | ActiveRecord: 86.0ms)
Jednak jest następnie * 90 sekund * aż strona jest rzeczywiście zesłał przeglądarki (lub dyni; testowaliśmy oba).
W tym czasie proces ruby ma procesor ustalony na 100%.
Jeśli usuniemy ".includes" (wstępne ładowanie), powróci on do normalnej, niezręcznej wydajności bez minimalnej przepaści nicości między renderowaniem strony a przeglądarką.
WTF powoduje, że wstępne ładowanie powoduje efekt !?
Jeden z kolegów postawił hipotezę problemu zbierania śmieci; jak mogę przetestować tę teorię?
szyn 3.2.12
Ruby 1.9.3 (p286 i p327 testowanych)