Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
У меня есть скрипт, который выдаёт кучу картинок через ресайзер
то есть <img src=script.php?img=kartinka.jpg>
и я так подозреваю, что это сильную нагрузку на сервер производит, да и
вообще страница начинает медленнее грузиться, может есть какой выход?
кеширование сделать там..подскажите..
JustUserR
Отправлено: 13 Февраля, 2010 - 13:15:14
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
phphel Вообще если картинка в теги img выглядит именно так без дополнительного JS-кода то браузеры зачастую вообще не запрашивают ее повторно - но при этом ничто не мешает сохранять вам сгенерированные картинки в определенную папку и потом ссылать уже на готовые картинки
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
phphel
Отправлено: 13 Февраля, 2010 - 13:19:45
Новичок
Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
Цитата:
но при этом ничто не мешает сохранять вам сгенерированные картинки в определенную папку и потом ссылать уже на готовые картинки
такой вариант отпадает сразу, я бы и тему не создавал, если бы он был возможен ))
никакого js кода нет... (Добавление)
сайт для телефонов, так что браузер не кэширует..
JustUserR
Отправлено: 13 Февраля, 2010 - 13:39:06
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
phphel пишет:
Сайт для телефонов, так что браузер не кэширует
Итак понятно что кеширование на клиенте отпадает и вариант с простым сохранением картинок в сгенерированную папку отпадает тоже - но к примеру если речь идет не о долговременном сохранеии картинок - то можно воспользоваться memcached и проверять и перед тем как начать генерировать картинку проверять нет ли уже такой в кеше
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
phphel
Отправлено: 13 Февраля, 2010 - 13:45:09
Новичок
Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
ok, щас буду читать насчет memcached, так как первый раз с ним сталкиваюсь )
и опять вопрос, как мне сделать, что бы кэшировались только картинки?так как страница на которой они расположены динамическая...
voltag
Отправлено: 13 Февраля, 2010 - 16:37:09
Новичок
Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010
Помог: 1 раз(а)
Здравствуйте.
Недавно сам разбирался с такой проблемой.
Настоятельно советую при помещении самих картинок на сайт(загрузке) их ресайзить и только потом при обращении пользователя выводить в ХТМЛ. Если Вы грабите картинки, то можете написать Кешь простой... обращайтесь к картинке.. сравниваете например 10 пикселей и решаете забирать картинку в Кешь или нет..После этого выводите нормальный контент.. можете делать Хешь графического файла и сравнивать Хеши.
Хотел поинтересоваться а куча картинок это сколько примерно в цифрах.
phphel пишет:
Цитата:
но при этом ничто не мешает сохранять вам сгенерированные картинки в определенную папку и потом ссылать уже на готовые картинки
такой вариант отпадает сразу, я бы и тему не создавал, если бы он был возможен ))
поясните почему он отпадает... простите но я не понял. Даже если у Вас около 5 тысяч картинок можно просто распихать их правильно по папкам. И тормозов не будет.
phphel
Отправлено: 13 Февраля, 2010 - 19:19:01
Новичок
Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
Картинок намного больше чем 5000...
Цитата:
но при этом ничто не мешает сохранять вам сгенерированные картинки в определенную папку и потом ссылать уже на готовые картинки
это отпадает так как придётся переписывать очень много в скрипте, я и сам понимаю, что это лучший вариант...
но еще проблема в том, что картинок как я уже говорил очень большое количество, и на ресайз, + раскидывание по папкам, а это
естественно добавляет еще проблем, + сайт для телефонов...ресайзить правильно оч сложно...
ладно, как я понял, все таки нужно переписывать сам скрипт...
voltag
Отправлено: 14 Февраля, 2010 - 09:55:48
Новичок
Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010
Помог: 1 раз(а)
phphel пишет:
Картинок намного больше чем 5000...
Вот Вам маленький совет по раскидыванию в папках графических файлов.... (или решение)
Для того чтобы не нагружать Ваш сервер Вы можете создать специфическое древо каталогов(как бы индексирование).
Пример:
дано: 5 тысяч картинок с именами в виде ХЕША самих картинок.
Решение:
Создаём директории для картинок например massimg
потом в этой директории создаём директории от A до Z и от 0-9 и помешаем туда картинки. Признак того, что картинку надо положить в директорию служит первая буква Хеша.... таким образом мы уменьшаем количество картинок в директории.. и потом мы сможем легко вычислить путь до них... если имя картинки есть в базе. Если и этого не хватает можно углубить до уровня 2... создать в каждом первичном каталоге от A до Z... ещё группу каталогов от A - Z 0-9 и помешать в соответсвии с первыми Двумя буквами:
Например Хешь МД5 картинки (её файловое имя) вот такой
c93d3bf7a7c4afe94b64e30c2ce39f4f
значит надо её поместить в каталоги с/9/ или massimg/c/9/
Лучше конечно создавать папки динамически (по мере надобности) чтобы не плодить лишнего.
Надеюсь Вам поможет
JustUserR
Отправлено: 14 Февраля, 2010 - 11:16:22
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
[quote=phphelОтличная статья про кэш.. и опять вопрос, как мне сделать, что бы кэшировались только картинки?так как страница на которой они расположены динамическая...[/quote]Хм так вы не остановились на использовании memcached - ведь на вашем сайте скорее всего не требуются все 5000 картинок сразу - а при обращении к наиболее частым их можно закешировать на некоторое время - это впринципе некая середина между временем на генерацию и местом для сохранения картинок
voltag пишет:
Поясните почему он отпадает... простите но я не понял. Даже если у Вас около 5 тысяч картинок можно просто распихать их правильно по папкам. И тормозов не будет.
Да действительно я соглашусь с вами ведь если важно именно быстродейсвтие то необходимо просто сохранить эти картинки по папкам и выводить их - при этом и расположения не так важно если иметь номер картинки по некоторым паравилам
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
valenok
Отправлено: 14 Февраля, 2010 - 11:34:54
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
5000 картинок хранить в памяти, да и 1000 — не очень хорошая затея.
Вариантов на самом деле не много. Можете их даже хранить не у себя, а заливать на какой нибудь imageshack и сохранять в базе путь.
Но мне не очень понятно чего вы хотите добиться, если переписывать скрипт или что-то менять в структуре каталогов не входит в ваши интересы.
----- Truly yours, Sasha.
JustUserR
Отправлено: 14 Февраля, 2010 - 11:45:14
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
valenok пишет:
5000 картинок хранить в памяти, да и 1000 — не очень хорошая затея.
Я имел в виду не все 5000 картинок хранить в memcached а те последние одинаковые которые выдавались пользователю - и с ограничением по времени на хранения Я с самого начала предлагал варианет с сохранением картинок в виде файлов в папке но автору такое не подходило
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
voltag
Отправлено: 14 Февраля, 2010 - 14:43:51
Новичок
Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010
Помог: 1 раз(а)
Я думаю все наши советы и решения не попадут в точку пока мы не узнаем истинную задачу. Потому, что мы обсуждаем усовершенствование метода решения задачи о которой мы по большому счёту ничего не знаем, кроме того что есть сайт для мобильных телефонов на котором надо выводить картинки, причём урезаные!!???
Прошу Вас phphel уточнить саму задачу. Мы не знаем что это за сайт, можно ли вообще менять код или можно менять шаблогы... можно ли лезть в Базу(а её может и не быть).. откуда наконец берутся картинки, они грабятся, они уже залиты на сервер, они заливаются на сервер каждый день по 1 тысячи штук в архиве...
И сколько намного больше 5000!??? 10К -20К... миллион??? Если варианты не подходят, то я могу предположить или догадываться, что Вы, например, делайте минигугл с поиском картинок и их обрезаете или что-то типо этого????
Вариант от valenok - отличный
Вариант от JustUserR - отличный
phphel
Отправлено: 14 Февраля, 2010 - 17:18:07
Новичок
Покинул форум
Сообщений всего: 46
Дата рег-ции: Февр. 2010
Помог: 0 раз(а)
voltag, спасибо, способ хороший, но у меня немного другая проблема ))
с вложенностью всё норм..
JustUserR, я так понял что memcached здесь будет лишним..
решил проблему так, что вместо ресайза "на лету", буду сначала ресайзить их
на локальном сервере, потом закачивать, а уж потом отдавать юзеру в нужном формате.
спасибо всем кто откликнулся в решении данного вопроса.
to voltag:
всё проще..
есть скрипт, для вап сайта, что-то наподобие "ленты новостей".
сначала в админке добавляешь новость, потом сами картинки, причём в нынешней версии картинки добавляются "как есть"
но это админка, дальше уже идёт пользовательский интерфейс, тоесть, юзерам нужно выводить картинки в уменьшенном виде,
примерно по 10 шт на 1 странице, естественно, что при клике на картинку, предлагается скачать ее, в разных форматах,
опять же на лету всё делается...
voltag
Отправлено: 14 Февраля, 2010 - 18:19:57
Новичок
Покинул форум
Сообщений всего: 39
Дата рег-ции: Янв. 2010
Помог: 1 раз(а)
phphel я рад что проблема решилась
JustUserR
Отправлено: 14 Февраля, 2010 - 18:29:28
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
phphel пишет:
JustUserR, я так понял что memcached здесь будет лишним..
Решил проблему так, что вместо ресайза "на лету", буду сначала ресайзить их
на локальном сервере, потом закачивать, а уж потом отдавать юзеру в нужном формате.
Понятно то есть вы все равно держите оба варианта картинки - уменьшенный вариант и оригинальный вариант - и кстати как вариант можно использовать ресайз на клиенте например посредставами ActiveX или Flash и закачкой соответствующих вариантов на сервер - тем более что на браузере у администратора по сути можно устанавливать любые средства
voltag пишет:
Вариант от valenok - отличный
Вариант от JustUserR - отличный
Да в принципе это достаточно стандартные решение при подходе с разной стороны
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.