У GD расход ОЗУ напрямую зависит от кол-ва пикселей. Сколько весит при этом картинка - не важно.
Если на хостинге есть imagemagick, используйте его.
У imagemagick очень много возможностей, но качество документации хромает (или я не нашел).
Вот вам простенькая обертка:
pastebin.com/PF9j5wWF
Пример использования:
$img = new SimpleImagick($original_fullpath);
$img->resizeDownTo(256, 256);
$img->save($thumb_fullpath, IMAGETYPE_JPEG, 100);