Обрезка изображения на лету. Как можно оптимизировать код на PHP?
Сходу можно предложить 2 способа:
1) Кэшируйте результаты исполнения скрипта, т.е. сохраняйте обрезанные изображения в файл, если искомый файл уже есть, отдавайте его напрямую.
2) Улучшить алгоритм генерацию изображений, например, вместо GD взять ImageMagick, он работает пошустрее, проверьте, есть ли на вашем хостинге модули imagick или magickwand. Код генерации изображений, разумеется, придется переписать.
Если это не фотохостинг, то можно ресайзить на клиенте (при наличии поддержки в браузере canvas и File Api) 
А вообще конечно да, не надо ресайзить на ходу, надо записывать ресайзнутые заранее или при первом обращении (но лучше всё таки  при загрузке).