Что дает лучшую пропускную способность проанализированного URL-адреса как аргументов вместе с запросом или синтаксическим анализом URL-адреса в view-Django - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть приложение Django, в котором URL-адреса для обработки должны иметь определенный шаблон, например / servername / alpha / beta / 2 / delta / 10 / pie / 1. Теперь мне понадобятся эти параметры, содержащиеся в URL-адресе, исохранить их в базе данных при вызове URL-адреса, начинающегося с / servername /.
Так что у меня есть 2 способа сделать это

  1. Передать параметры вместе с запросом в соответствующее представление. В этом случаемое регулярное выражение гарантировало бы, что у меня есть параметры от param1 до param7, имеющие значения альфа, бета, 2, дельта, 10, pie и 1. соответственно.
  2. Передача только запроса без передачи параметров. Я буду либо анализировать, используя регулярное выражение запроса.path_info или разбить request.path_info на «/» и получить соответствующие записи

    Какой из этих двух методов предпочтителен для того, чтобы иметь лучшую производительность с точки зрения ЦП и памяти или, возможно, других факторов, которых я не знаюиз.
    Я полагаю, что можно сравнить два, используя функции времени, но я считаю, что это не даст точную картину.с какой точки зрения какой подход предпочтительнее и почему?

1 Ответ

1 голос
/ 13 декабря 2011

Второй вариант по своей сути медленнее, поскольку вашему представлению придется каждый раз выполнять этот анализ, тогда как стандартный анализатор URL Django работает от скомпилированных регулярных выражений. (URL-шаблоны в urls.py компилируются один раз при первом запуске.)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...