За последние 24 часа нас посетили 17824 программиста и 1646 роботов. Сейчас ищут 858 программистов ...

Хранить нельзя генерировать

Тема в разделе "PHP для новичков", создана пользователем SkyKiller, 13 апр 2008.

  1. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    Собственно, вопрос: поставьте запятую правильно... :)
    Суть вопроса в следующем: есть сайт с посещаемостью примерно 1000 уников в день. Сайт знакомств, с анкетами. Анкет - около 2000. В каждой анкете, в среднем, 3-4 фотографии. У каждой фотографии есть тумбнэйл объёмом примерно 10 килобайт.
    Вопрос: Как лучше сделать?
    1. Сгенерировать тумбнэйлы сразу при добавлении пользователем фотографий и хранить их на диске в личной папке профиля
    2. Генерировать тумбнэйлы "на лету", при каждом отображении анкеты в браузере?

    В первом варианте "жрётся" дисковое пространство, во втором - ресурсы сервера.

    Что посоветуете?
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Вариант номер один.
     
  3. Anonymous

    Anonymous Guest

    Вариант номер один.
     
  4. sword dancer

    sword dancer Активный пользователь

    С нами с:
    17 фев 2008
    Сообщения:
    295
    Симпатии:
    0
    вариант номер 3 - кэшировать.
     
  5. Anonymous

    Anonymous Guest

    sword dancer, где?
     
  6. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    sword dancer
    +1
    Кэшировать! т.е. генерировать при первом запросе и хранить в отдельной папке! (у меня так)
     
  7. sword dancer

    sword dancer Активный пользователь

    С нами с:
    17 фев 2008
    Сообщения:
    295
    Симпатии:
    0
    Горбунов Олег, на диске, где же ещё :) давать ссылки на файлы в кэше, а в случае отсутствия реврайтить на скрипт генерации картинки.
    что-то вроде:
    /upload/image/w150/AF/E3778F8E783AA3.jpg - > /index.php?module=thumb&img=AFE3778F8E783AA3.jpg&width=150
    /upload/image/150x150/AF/E3778F8E783AA3.jpg - > /index.php?module=thumb&img=AFE3778F8E783AA3.jpg&width=150&height=150
     
  8. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Я правильно понимаю, что от обычной генерации при добавлении файла это отличается только тем, что генерация происходит при первом обращении к картинке? Разница только в том, КОГДА её запросят?

    Или здесь есть что-то ещё? Типа файлы удаляются со временем?
     
  9. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Johnatan У меня именно так.
    Т.к. добавить можно разными способами (через форму, по фтп, через админку...)

    Можно конечно сделать и автоотчистку кэша... но до этого пока не дошло. )))
     
  10. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Я просто сам сейчас делаю нечто подобное. 10000+ объектов и у каждого объекта по 0-20 фотографий. Соответственно тамбнейлы получаются общим объёмом до 2Гб. Что не есть хорошо. Там одних фоток только на 60Гб.
    Поэтому данный вопрос меня тоже очень интересует. На данный момент я сделал автоматическую генерацию при добавлении картинки, так как картинки добавляются только через админскую панель (бедный админ, который будет все эти 200к картинок туда заносить).
    Вот теперь думаю всё-таки сделать кеширование. Только вот сколько их хранить? Неделю?
     
  11. sword dancer

    sword dancer Активный пользователь

    С нами с:
    17 фев 2008
    Сообщения:
    295
    Симпатии:
    0
    объём превьюшек в сравнении с объёмом оригиналов всё-равно сильно меньше, так что удалять их по времени особого смысла нет.
     
  12. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    Если честно, то я тоже больше к первому варианту склоняюсь, ибо нагрузка меньше будет на сервак. Чёрт с ними, с винтами (вернее, с местом на них). А насчёт кэширования - спасибо, здравая идея, я подумаю над ней.
     
  13. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    так какая разница, 60 или 62?
     
  14. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    Разница не в этих двух гигах... А в том, что больше систему нагрузит - генерация или загрузка с винта (если одновременно много просмотров)
     
  15. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    SkyKiller
    Если стоит нормальный WEB сервер для статики (не Apache, боже упаси Apache для статики!) и сайт не сильно посещается (1000 уников в день фигня) то парится смысла нету. С потоком в 5-6 Мегабайт в секунду справится любой диск.
     
  16. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    грузнуть с диска маленькую превьюшку всяко быстрее, чем грузить большой сорц. во втором случае - его ещё и ресайзить каждый раз...
     
  17. xak2

    xak2 Guest

    Для сайта с такой посещаемостью лучший вариант кеш в любом случаи. Но не понимаю почему такой сайт на таком маленьком сервере стоит? Или чисто из принципа жалко 60мб места?
     
  18. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    Про мегабайты никто не говорил :)
    Здесь цифры на порядок выше