Форум → Программирование → PHP для идиотов → Оптимизация роутера запросов
Оптимизация роутера запросов
-
5 марта 2010 г. 21:19, спустя 3 минуты 4 секунды
md5, после твоего поста я подумал также :-DСпустя 18 сек.пошел топик в "курилку" переименую )))Сапожник без сапог -
15 июня 2010 г. 14:00, спустя 101 день 15 часов 41 минуту
быстрее всего роутинг выполняют сами сервера apache/nginx, поэтому если нужно выгадать миллисекунды - разбейте функционал по файлам
/search/index.php
/docs/index.php
/catalog/index.php
и т.д.
а то регекспами разбирать - канешн накладно. бггне всё полезно, что в swap полезло -
15 июня 2010 г. 14:06, спустя 6 минут 34 секунды
с этим не поспоришь. именно этому и посвящена тема - как для абсолютно произвольной схемы свести количество регекспов к минимуму.
если есть четкая структура, неважно в виде физических папок и файлов или виртуальных, можно роутить запросы проще.ιιlllιlllι унц-унц -
15 июня 2010 г. 14:23, спустя 16 минут 33 секунды
как для абсолютно произвольной схемы
не бывает идеальных решений, бывают оптимальные. можно например уменьшать не количество регекспов, а количество проверок, т.е. запихивать вычисленные роуты в мемкэшне всё полезно, что в swap полезло -
15 июня 2010 г. 14:42, спустя 18 минут 45 секунд
нука-нука, сохранять уже разобранные совпадения?ιιlllιlllι унц-унц -
15 июня 2010 г. 14:58, спустя 16 минут 8 секунд
$route_id = memcache_get($_SERVER['REQUEST_URI']);
if ($route_id === false){
// ищем совпадение для url
// $route_id = …
memcache_set($_SERVER['REQUEST_URI'], $route_id);
}
if (!$route_id) { /* 404 */}
$route_info = getRouteInfo($route_id);
…Спустя 79 сек.хотя не, это я глупость написал. роуты в кэше хранить не нужноне всё полезно, что в swap полезло -
15 июня 2010 г. 15:09, спустя 10 минут 54 секунды
вы чё гоните, какние регексы нахрен?
domain.com/param/value/param/value/param/value/param/value<?php
//ПОКАЗЫВАЮ АБСТРАКТНО ИДЕЮ
$route = array(
'param' => 'value',
'param' => 'value',
'param' => 'value',
'param' => 'value'
);
function Action::run(&$ruote)
{
$nextActionName = array_shift($ruote);
if ($nextActionName) {
$this->getResponse()->myInternalAction = $this->getAppl()->getCountroller()->runAction($route);
}
} -
15 июня 2010 г. 15:33, спустя 24 минуты
domain.com/param/value/param/value/param/value/param/value
есть такая вещь, как seo-требования, "красивые" урлы полезны, это раз. и два, урлы первичны, реализация вторична
site.com/controller/documents/docname/about/ вместо site.com/about/ - нормально?не всё полезно, что в swap полезло -
15 июня 2010 г. 15:59, спустя 25 минут 53 секунды
master, в моём абстрактном примере $route - это чистые данные для маршрутнизации, поэтому над ним будет 100% ная надстройка для реврайта и прочей хрени. -
15 июня 2010 г. 17:29, спустя 1 час 30 минут 58 секунд
ололол :D:D:D
мастер жжешь!
запрос к мемкешу - быстрее регулярки? )))) пусть даже 20-50? )))))))))Сапожник без сапог -
15 июня 2010 г. 17:35, спустя 5 минут 54 секунды
запрос к мемкешу - быстрее регулярки? )))) пусть даже 20-50? )))))))))
я не знаю, тестить надо
из-за 20-50 регулярок я б не стал париться, а вот из-за 500 можно подумать.
но роуты в кэше всё равно хранить не нужно, и не из-за скорости.не всё полезно, что в swap полезло -
15 июня 2010 г. 17:38, спустя 2 минуты 41 секунду
master, роуты я бы хранил в "быстром" кеше - например в переменной сессии / Application. сериализация для размеров до 50кб - мегабыстрое дело, можно и закешить :)Спустя 26 сек.и то полезно в паре случаев - в ддос например))) чтобы проц на регулярках не потерятьСапожник без сапог -
15 июня 2010 г. 20:57, спустя 3 часа 18 минут 51 секунду
в общем случае разбор маршрута это не "бутылочное горлышко" в производительности.
мне нравится тезис master о том, что сайт это всего-лишь машина преобразующая url в html.
париться вообще не надо ни по какому поводу.ιιlllιlllι унц-унц -
15 июня 2010 г. 22:57, спустя 1 час 59 минут 48 секунд
artoodetoo, уху, здравый тезис)Сапожник без сапог -
18 августа 2012 г. 21:28, спустя 794 дня 22 часа 31 минуту
не сама а сам.и не с собой,а пытаюсь поговорить с табой
Пожалуйста, авторизуйтесь, чтобы написать комментарий!