dotpay / WooCommerce2

WooCommerce2
MIT License
11 stars 11 forks source link

[Optymalizacja] Wtyczka bardzo spowalnia sklep #65

Closed kandrzejczak closed 4 years ago

kandrzejczak commented 4 years ago

Witam, Zacząłem analizować sklep pod kątem szybkości i okazało się że 15-50% czasu przetwarzania każdego requesta zajmuje wtyczka dotpay.

Request github [50-300ms] Przy każdym żądaniu wtyczka wysyła request do github aby sprawdzić jaka jest aktualna wersja wtyczki co zajmuje 50-300ms w zależności jak szybko w danym momencie działa github. Rozwiązanie: Polecam zapisywać dane z github do pliku lub do bazy danych wraz z informacją kiedy było ostatnie zapytanie i odpytywać github tylko kilka razy dziennie. Odpytanie pliku lub bazy będzie 1000x szybsze niż robienie zapytania za każdym razem.

3 x Request github [150-900ms]. Gdy wtyczka wykryje że wersja pluginu nie jest aktualna to wywołuje funkcję noticeDotModule w której funkcja getLatestVersionDotpayModule jest wykonywana 3 razy. Rozwiązanie: Polecam wywoływać tą funkcję raz i przypisać jej wynik do zmiennej.

Wszyscy użytkownicy wtyczki będą na pewno bardzo wdzięczni za rozwiązanie tego problemu a dodatkowo zmniejszymy emisję CO2

image

wpawel commented 4 years ago

poprawione w wersji v3.4.0

kandrzejczak commented 4 years ago

@wpawel jest lepiej ale nadal każdy request wordpress musi wykonać zapytanie do github które zajmuje 30-100ms więc często połowa czasu request to jest odpytanie github. Polecam dodaniem jakiegoś mechanizmu który będzie to sprawdzał co godzinę.

Dodatkowo CURLOPT_TIMEOUT jest ustawiony na 1000 sekund więc jak padnie lub przymuli github to strony wszystkich klientów automatycznie przestają działać.

Ta linia jest wywoływana przy każdym request: https://github.com/dotpay/WooCommerce2/commit/26e08582d0bf95db2a0d61c6bfdedbcd50d661bf#diff-d93cd7945da849666f03d56eb2af3e49R124