PHP GD — разница производительности / времени между выводом и сохранением

Использование php и gd — что лучше для производительности или времени между:

Вывод изображения

header('Content-Type: image/png');
imagepng($image);

Или сохранение изображения на сервере (на локальном сервере или Amazon s3)

imagepng($image, 'new_image.png');

-1

Решение

Что ж, не будет никакой разницы во времени, необходимом для генерации данных изображения, потому что оно будет одинаковым в обоих случаях.

Однако, когда вы сохраняете образ на локальный диск, операция, вероятно, завершится намного быстрее, чем когда данные должны быть отправлены в браузер клиента где-нибудь в мире.

Однако смысл PHP в том, чтобы представить что-то в браузере, поэтому я думаю, что вы все равно покажете сохраненный файл, сводя на нет все преимущества в скорости, которую вы получили от хранения изображения.

Итак, если вы хотите, чтобы изображение отображалось в обоих случаях, я думаю, было бы лучше вывести изображение непосредственно из сценария PHP.

С другой стороны, если вы используете изображение более одного раза, вы должны сохранить его и использовать сохраненную версию, потому что для создания самого изображения в PHP требуется время.

Если вы хотите сгенерировать один раз и использовать много раз, вы можете использовать этот фрагмент кода PHP:

<?php
// this is where it is stored
$filename = 'my_image.png';

// test if file exists
if (!file_exists($filename))
{
// if does not exist, make it
<... your code for making the image ...>
// store to disk
imagepng($image,$filename);
// image is not needed anymore
imagedestroy($image);
}

// header
header('Content-Type: image/png');
// get file from the disk
readfile($filename);
?>

Просто удалите образ с диска, если вы изменили его и хотите восстановить его. Это очень простой пример, вы можете опираться на него в зависимости от ваших потребностей.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]