/ / Я хочу створити кілька ескізів за допомогою бібліотеки GD у php, що краще створювати на льоту чи створювати фізичну? - php, ескізи

Я хочу створити декілька ескізів, використовуючи GD бібліотеку у php, які краще створювати на льоту або створювати фізичні? - PHP, ескізи

Я хочу створити кілька ескізів за допомогою GDбібліотека в php, і я вже маю сценарій для цього, питання в тому, що для мене краще .. чи краще створювати ескіз на льоту? або створювати фізичний файл на моєму сервері кожного разу, коли я хочу великий палець ?? і чому?

Будь ласка, враховуйте трудомісткість та місткість зберігання, а також інші недоліки обох

Відповіді:

1 для відповіді № 1

Ні те, ні інше - не створюйте ескізи, поки вони вам не знадобляться, але зберігайте створені вами файли.

Таким чином ви "зведете до мінімуму обсяг необхідної роботи і матимете систему самовідновлення

С.


3 для відповіді № 2

Коли ви створюєте ескіз, це залежить від парифакторів (до яких я "потраплю"), але ви ніколи не повинні відкидати результати чогось подібного (якщо ви більше ніколи не будете їх використовувати), оскільки це дійсно дорога операція.

У будь-якому випадку, вашими двома основними варіантами "коли створювати ескіз" є:

  1. Коли це вперше запитується. Це є загальним явищем, і це означає, що ви не створюєте ескізи, які ніколи не використовуються, але це означає, що якщо у вас є сторінка, заповнена ескізами вперше, сервер може бути переповнений процесами PHP, що генерують ескізи.

    У мене була подібна проблема з Sorl + Django, де ягенерував 100+ мініатюр на запит для перших кількох запитів після завантаження, і це в основному змусило весь сервер зависнути протягом 20 хвилин. Не добре.

  2. Створюйте всі необхідні мініатюри під час завантаження. Оскільки завантаження займає багато часу, ви досить сильно розбиваєте обробку. Ви також можете витягнути його з процесу (тобто використовувати інший скрипт для обробки завантажень - можливо, навіть не в PHP).

    Очевидний мінус полягає у тому, що ви використовуєте дискмісця, яке в іншому випадку вам не потрібно було б витратити ... Але якщо ви не говорите про сотні тисяч ескізів, невеликий відсоток невикористаних, ймовірно, не зірве банк.

    Звичайно, якщо дисковий простір є проблемою, може існувати аргумент для переміщення ескізу до CDN одночасно з обробкою.

Одна нотатка, коли ви зберігаєте ескізи, це "sдосить часто, що ви захочете змінити розмір мініатюр у певний момент по лінії або, можливо, захочете два невеликі варіанти. Я вважаю, що дуже корисно зробити імена файлів дуже конкретними, щоб, якщо оригінальне зображення було image.jpg, версія 200x200 є image-200x200.jpg.


1 для відповіді № 3

GD насправді важкий для ресурсів, тому варто подивитися, чи можна замість цього використовувати ImageMagick (який також має більш чіткий синтаксис).

Вам точно буде краще кешуватистворений ескіз після першого запуску (незалежно від того, запустили ви GD або ImageMagick) і подайте їх із кешу. Якщо вас турбує сховище, час від часу очищайте старі файли з кешу.


0 для відповіді № 4

Завжди кешувати (= записувати на диск) результатиОперації GD. Вони занадто дорогі як щодо часу процесора, так і пам’яті, щоб їх можна було робити щоразу на льоту. Це стає дедалі актуальнішим, чим більше у вас відвідувачів / хітів.