Moin Moin!
Wenn Du nicht offline schon Thumbnails vorberechnen willst (siehe Toms Posting), kannst Du Dir wenigstens verkneifen, Thumbnails für jeden Request neu zu berechnen, indem Du die generierten Thumbnails irgendwo im Dateisystem lagerst und diese bevorzugt ausliefertst, idealerweise ohne den Umweg über PHP.
Mit einem eigenen Error-Handler im Webserer, der genau dann anspringt, wenn ein Thumbnail noch nicht im Dateisystem vorhanden ist (Status 404), ließe sich PHP großenteils vermeiden. Der erste Zugriff auf ein Thumbnail rennt in den Error-Handler, der erkennt anhand der angeforderten URL und der vorhandenen Originalbilder, dass ein Thumbnail gefordert ist, berechnet den Thumbnail, speichert den genau dort im Dateisystem, wo er das nächste mal gesucht wird, und liefert den berechneten Thumbnail mit Status 200 aus. Der nächste Zugriff geht direkt auf die Datei, ohne dass der Error-Handler anspringt, und der Webserver kümmert sich ganz alleine und sehr effizient um den Rest.
Alternativ lieferst Du die Thumbnails immer über PHP aus, mit dem dabei zwangsläufig entstehenden Overhead. Ganz grob schaut PHP nach, ob der angeforderte Thumbnail vorhanden ist, wenn nicht, wird er generiert und in eine Datei geschrieben. In jedem Fall, auch wenn der Thumbnail frisch generiert wurde, lieferst Du dann diese Datei aus.
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".