Производительность, Zend Route против Apache mod_rewrite - PullRequest
0 голосов
/ 20 ноября 2011

Насколько быстрее mod_rewrite по сравнению с Zend Router?Стоит ли отказываться от использования Zend Router и делать то же самое с правилами перезаписи в определениях виртуальных хостов apache с использованием mod_rewrite?

Разница очень существенная?

Я слышал, что многие люди говорили, что mod_rewrite вызвалнекоторые сайты с большим трафиком ломаются, мне было интересно, должно ли это вызывать беспокойство при разработке с ZF

Ответы [ 2 ]

2 голосов
/ 20 ноября 2011

Мне кажется, что вы движетесь к преждевременной оптимизации. Хотя маршрутизация только с mod_rewrite может быть немного быстрее, чем mod_rewrite + ZF, разве увеличение скорости на 1-2 мс (возможно, меньше) действительно стоит того, чтобы жертвовать удобством обслуживания и гибкостью? Вы должны рассмотреть такой вариант действий только в том случае, если у вас есть приложение, в котором вы знаете (с помощью бенчмаркинга), что маршрутизация является вашим узким местом, и вы уже исчерпали все стандартные решения такой проблемы.

Что касается самого mod_rewrite, я видел, как он аварийно завершал работу сайтов, но только когда правила были плохо написаны (что приводило к тому, что он перезаписывал один и тот же запрос несколько раз). Это не то, о чем вам нужно беспокоиться, если вы просто используете правило ZF по умолчанию, которое просто переписывает все запросы в один файл PHP.

2 голосов
/ 20 ноября 2011

Вот подсказка: просто посмотрите на производительность между C и Php (среда LAMP).

...

Готово?

Если я не ошибаюсь, C обычно в 35-40 раз быстрее, чем байт-код Php.

Так что представьте, что у Apache есть свои mod_rewrite.

mod_rewrite - это 100% Gnu C (поправьте меня, если я ошибаюсь), и он звонит на PCRE, что также составляет 100% C.

Зная, что Regexp предварительно скомпилированы, ну, ошибаться ... могу я пойти дальше?

Не обижайся, но, зная это, ты быстро догадываешься, что тебе лучше попробовать использовать RewriteRules. Если вы хорошо об этом думаете, вы можете разумно смешать RewriteRules и rewritemap , чтобы получить очень, очень быстрый HTTP-сервер.

Надеюсь, это поможет

...