Автор Тема: Unsirialize() vs. Explode(), что быстрее?  (Прочитано 14044 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Unsirialize() vs. Explode(), что быстрее?
« Ответ #15 : 28 Июля 2002, 17:11:42 »
А я думаю, что с базой будет удобнее.
Меньше сущностей - меньше глюков, меньше проблем.
Все равно ты контент достаешь из базы - ну и кто тебе мешает путь доставать?

А с файлами заморачиваться... Блокировки ставить, clearstatcache... оно тебе надо?

А при большой посещаемости надо не тайтлы кэшировать, а весь контент - статику генерить.
Не знаю, вот не очень я понимаю твоего вопроса. У меня столько дел на сайте - запросы оптимизировать, новые фичи добавлять... На такие, как твой просто времени не остается. Если сайт начинает тормозить - профилируем его, выделяем узкие места, и начинаем их выпрямлять.
« Последнее редактирование: 28 Июля 2002, 17:17:10 от RomikChef »

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Unsirialize() vs. Explode(), что быстрее?
« Ответ #16 : 28 Июля 2002, 19:10:19 »
Цитировать
Все равно ты контент достаешь из базы - ну и кто тебе мешает путь доставать?

Это ещё один запрос, а если новое поле в таблице с контентом создавать, то геморно будет переносить файлы из одной папки в другую, переименовывать...

Цитировать
А с файлами заморачиваться... Блокировки ставить, clearstatcache... оно тебе надо?

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

Цитировать
У меня столько дел на сайте - запросы оптимизировать, новые фичи добавлять...

Так я тоже это делаю! С запросами уже вроде не плохо вот решил занятся "малым" и пинаю до совершенства.
« Последнее редактирование: 28 Июля 2002, 19:17:28 от Tronyx »
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Unsirialize() vs. Explode(), что быстрее?
« Ответ #17 : 28 Июля 2002, 23:53:33 »
Цитировать
А с файлами заморачиваться... Блокировки ставить, clearstatcache... оно тебе надо?

Проблемму то нашел :) Я себе для этого класс написал - и больше не вспоминаю.
А на сложном сайте кеширование сильно облегчает работу сервера.
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Unsirialize() vs. Explode(), что быстрее?
« Ответ #18 : 29 Июля 2002, 00:57:46 »
Stek
Я понимаю кэширование ВСЕЙ страницы. Перевод в статику.
Я понимаю оптимизацию запросов.
Но кэшировать заголовок страницы при том, что весь контент берется из базы - я этого не понимаю.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Unsirialize() vs. Explode(), что быстрее?
« Ответ #19 : 29 Июля 2002, 09:06:23 »
Цитировать
Я понимаю кэширование ВСЕЙ страницы. Перевод в статику.

Я же сказал что это есть, на выбор даётся 4 варианта:
1. Кеширование абсолютно всей страницы.
2. Кеширование контента, затем он будет вставлен в дизайн.
3. Кеширование путей. Повторяю это убирает 1 запрос к БД и обработку результата (сравнительно большая), что тоже не плохо.
4. Не кешировать вообще.

Цитировать
при том, что весь контент берется из базы - я этого не понимаю.

Так ведь таблицы разные. В одной контент а в другой дерево папок. Чтобы достать инфу о загаловке, шаблоне... нужно сделать один запрос который достанет папки с нужными именами, затем нужно проверять вложеность этих папок (ведь может быть папка с таким же именем, но находящаяся в другой), и чтобы это каждый раз не делать я кеширую. Конечно же если включено кеширование контента то кешировать пути не нужно. Это довольно таки неплохой способ при минимуме затрат(нужно мало дополнительного места на диске).

Теперь понял?

P.S. В каком-то смысле это и есть оптимизация запросов :)
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Unsirialize() vs. Explode(), что быстрее?
« Ответ #20 : 29 Июля 2002, 20:39:46 »
А как вставлять статичный документ? С помощью require() или file() ( echo join("", file("cash.html")); ). ИМХО если я не ошибаюсь то file(); "схавает" больше памяти.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Unsirialize() vs. Explode(), что быстрее?
« Ответ #21 : 29 Июля 2002, 21:04:40 »
readfile()
только статичные документы не "вставляют", а просто кладут в каталог веб-сервера и ставят на них ссылки.
Представь себе, есть такой способ представления данных.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Unsirialize() vs. Explode(), что быстрее?
« Ответ #22 : 29 Июля 2002, 22:15:32 »
Цитировать
только статичные документы не "вставляют", а просто кладут в каталог веб-сервера и ставят на них ссылки.
Представь себе, есть такой способ представления данных.

А ты почитай повнимательней предыдушие сообщения там сказано, что файлы и папки виртуальные и создавать их я небуду, а все закешированые страницы кидаются в отдельную папку.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Unsirialize() vs. Explode(), что быстрее?
« Ответ #23 : 29 Июля 2002, 22:27:05 »
Гы.
Дак я что. Я ничего.
Нехай будут в отдельной папке.
просто когда я буду переводиться на статику, это у меня займет в 10 раз меньше кода, будет работать быстрее и без ошибок :-)))

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Unsirialize() vs. Explode(), что быстрее?
« Ответ #24 : 29 Июля 2002, 22:40:34 »
В принципе-то я понимаю, что у тебя система управления контентом, и все такое.

Просто лично мне все эти вещи не нравятся.
уж больно они усложняют систему и через какое-то время ее становится чертовски трудно поддерживать...
Я никогда не изменяю принципу KISS :)

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Unsirialize() vs. Explode(), что быстрее?
« Ответ #25 : 30 Июля 2002, 10:17:29 »
Цитировать

Гы.
Дак я что. Я ничего.
Нехай будут в отдельной папке.
просто когда я буду переводиться на статику, это у меня займет в 10 раз меньше кода, будет работать быстрее и без ошибок :-)))

Сорри. Это я протормазил. ;) до меня самого это чуть позже дошло, а как сделать чтобы была полная статика ещё не совсем дошло :( Вот какие варианты приходят в голову:
1. Как-то через mod_rewrite узнать существует ли файл кеша и если да то переписать УРЛ на кеш, если нет то на скрипт. (но вроде это не реально).
2. Передавать на скрипт все запросы на .html файлы если файл кеша есть, а это будет такой же путь только файл - .htm делать Header(Location: ...);
3. Делать такое же дерево папок и файлов(не виртуальных) и не вы*быв@ться. (ИМХО ты вроде за этот вариант)

Если есть ещё какие-нибудь плиз подскажи.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Unsirialize() vs. Explode(), что быстрее?
« Ответ #26 : 30 Июля 2002, 10:35:26 »
Я думаю, второй - самый реальный.

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

Постой. А если так?
мод-реврайт направляет тебя на htm файл. Если его нету, то тогда уже обработчик 404 выдвет из базы?
Не, ккриво как-то...

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Unsirialize() vs. Explode(), что быстрее?
« Ответ #27 : 30 Июля 2002, 10:50:45 »
Цитировать
Сорри. Это я протормазил.  до меня самого это чуть позже дошло, а как сделать чтобы была полная статика ещё не совсем дошло  Вот какие варианты приходят в голову:
1. Как-то через mod_rewrite узнать существует ли файл кеша и если да то переписать УРЛ на кеш, если нет то на скрипт. (но вроде это не реально).
2. Передавать на скрипт все запросы на .html файлы если файл кеша есть, а это будет такой же путь только файл - .htm делать Header(Location: ...);


Посмотри вот это
http://www.phpdevs.com/data/24/
Исходники есть,  внутри - сплошная динамика, снаружи - уже как статика. Кеширование так же присутствует :)
В качестве обучающего примера - думаю сойдет :)
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Unsirialize() vs. Explode(), что быстрее?
« Ответ #28 : 30 Июля 2002, 13:42:21 »
Цитировать
Я думаю, второй - самый реальный.

Но это опять же дерево папок нужно строить :( это я забыл. А вот если этот вариант немного улучшить:
Всё запросы на .html файлы "отправляются" на скрипт, затем он проверяет есть ли этот документ в кеше (а имя закешированого документа это путь, только все "/" заменяются на точку и расширение файла .htm, чтобы не зациклился), если есть то делает хедер локейшен на этот файл только вместо точек ставится "/", затем запускается mod_rewrite и переписывает этот путь на /cash/путь.с.точками.htm. Может это геморно?

Цитировать
Постой. А если так?
мод-реврайт направляет тебя на htm файл. Если его нету, то тогда уже обработчик 404 выдвет из базы?
Не, ккриво как-то...

Да мне это тоже в голову приходило, удобно, НО если кешировать довольно таки мало странц, будет лишняя нагрузка на сервер, смотри:
1. mod_rewrite переписывает УРЛ.
2. Apache ищет файл.
3. Apache даёт сигнал на ошибку.
4. Запускает новый процес на PHP.
5. Скрипт генерирует страницу.
Конечно если кешируется бОльшая часть страниц или даже все, просто кеша этой страницы ещё нет, то это ИМХО лучший вариант.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Unsirialize() vs. Explode(), что быстрее?
« Ответ #29 : 30 Июля 2002, 13:54:53 »
Tronyx
Блин, ну посмотри ты iCMS - я там эту проблему уже месяца четыре назад решил :)
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28