Я размещаю веб-сайт, который в рамках своего сервиса создает для пользователей классные PNG-аватары на основе их скинов в игре.
Я кэширую все изображения в каталоге кеша в течение 4 часов, чтобы предотвратить попадание на игровые серверы и сократить время загрузки изображений, но после года или двух этого я заметил, что время загрузки аватаров увеличивается, поскольку появляется больше кэшируемых изображений. в каталоге, что выглядит странно для меня, потому что я не заставляю свой скрипт перебирать всю директорию, пока не найдет кэшированное изображение, которое искал.
И вот несколько тестов в cURL:
Первый тест; 400 кэшированных изображений:
------- time_namelookup: 0,000 time_connect: 0.093 time_appconnect: 0,000 time_pretransfer: 0.093 time_redirect: 0,000 time_starttransfer: 0.452 ---------- итого: 0,452
Второй тест; после удаления всего кэша:
time_namelookup: 0,000 time_connect: 0.093 time_appconnect: 0,000 time_pretransfer: 0.093 time_redirect: 0,000 time_starttransfer: 0,249 ---------- итого: 0,249
Итак, есть ли какая-то конкретная причина, по которой время загрузки уменьшается с меньшим количеством кэша в каталоге? И есть ли способ оптимизировать это?
редактировать
Способ выполнения запросов заключается в том, что всякий раз, когда кто-то запрашивает аватар, скрипт проверяет, существует ли кэшированное изображение с его именем пользователя.
Это делает это с PHP file_exists()
Задача ещё не решена.
Других решений пока нет …