Я только что протестировал 55 изображений размером более 5 МБ:
ImageMagick getImageGeometry занял 5.3 seconds
(потому что после каждого файла вы должны воссоздавать объект Imagick), в то время как getimagesize проходил через изображения в 0.032 seconds
. Последнее более чем приемлемо.
Если нет, сохраните размеры в базе данных.
РЕДАКТИРОВАТЬ: Кроме того, если вы получаете файлы через TCPIP, это значительно замедляет процесс. Итак, если вы называете это так:
getimagesize('http://www.blabla.com/pic.jpg');
Вместо
getimagesize('localdir/hereiam/pic.jpg');
Вы получаете некоторые издержки сети.
Кроме того, если эти изображения постоянно содержат данные EXIF (сделанные с помощью цифровой камеры), то вы можете использовать функции PHP exif_, например: exif_read_data.
Вопрос: какую версию PHP вы используете? В более старых версиях 4.x возникали меньшие проблемы с определением размера изображения в определенных файловых системах.