Napisałem skrypt, aktualizujący ofertę sklepu. Skrypt ten chodzi w cronie raz na dobę i zaciąga pliki xml od różnych producentów.
Po ściągnięciu i zapisaniu pliku xml lokalnie, następuje jego walidacja oraz przetwarzanie. Zauważyłem, że wąskim gardłem całego systemu jest curl (też mi nowina

). Oferta składa się z około 1000 produktów. Do każdego z nich podczepione jest kilka obrazków (średnio 8). Każdy obrazek waży mniej więcej 20 kB. Zaciąganie takiej ilości obrazków za każdym razem jest bez sensu, dlatego też sprawdzam przy pomocy funkcji file_exists, czy aktualnie wybrany obrazek jest już ściągnięty. I teraz pojawia się problem. Jeśli obrazki są ściągane, wówczas skrypt mieli 2 - 3 h. Bez sprawdzania czy zdjęcia istnieją około 4h. Bez ściągania zdjęć 30 min.
Czy funkcja file_exists rzeczywiście tak zamula, czy mam szukać "wąskiego gardła" w innym miejscu?