Библиотека GD использует большую память?

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

Это замедлит сервер или израсходует необычный объем памяти?

8
задан Mark Biek 13 January 2010 в 21:05
поделиться

5 ответов

использование GD большая память. Это загружает изображение в память полностью и распаковывает его, таким образом, вам будут нужны по крайней мере 32 бита на пиксель. Изображение с размером 800 x 600 действительно затем израсходовало:

800 * 600 * 32 бита = 15,4 мегабит = 2 МБ

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

необходимо действительно рассмотреть кэширование миниатюр, таким образом, они только должны быть сгенерированы однажды (это ускорит страницу для посетителей также!).

я также читал теперь, когда вы загружаете изображения из внешнего сервера, в этом случае ДЕЙСТВИТЕЛЬНО необходимо кэшировать изображение, потому что иначе посетители должны ожидать ВАС для загрузки всего изображения сначала. Это становится еще хуже, если внешний сервер снизится или будет перегружен, и ваши посетители должны будут ожидать тайм-аута (то это будет похоже, это - ваш сервис, который является медленным). В дополнение к этому вы потратите впустую много пропускной способности при загрузке изображения каждый раз, когда пользователь просит миниатюру его.


, Так как GD использует такую память, может стоить вместо этого генерировать миниатюры с помощью расширения IMagick. ImageMagick действительно масштабируется намного лучше относительно потребления памяти и также очень быстр (но необходимо все еще кэшировать изображения по вышеизложенным причинам).

7
ответ дан 5 December 2019 в 17:38
поделиться

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

0
ответ дан 5 December 2019 в 17:38
поделиться

Любая обработка изображений, вероятно, будет памятьем.

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

Библиотека PHP, которая имеет дело с большим количеством этого кэширования для вас, это phPthumb - это, вероятно, идеально подходит для таких задач.

http://phpthumb.sourceforge.net/

1
ответ дан 5 December 2019 в 17:38
поделиться

Уверен, что он замедлит сервер, это также зависит На размер изображения вы используете. Почему бы вам не просто сохранить миниатюру - изображение?

1
ответ дан 5 December 2019 в 17:38
поделиться

Зависит от того, что ты с ним делаешь, но почему бы тебе не попробовать самому:

1
ответ дан 5 December 2019 в 17:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: