Является ли классическая ASP Session.Variables дорогостоящей? - PullRequest
0 голосов
/ 07 января 2019

Я прочитал много статей о переменных сеанса в Classic Asp.

Я уже знаю, что доступ к Request.Servervariables обходится дорого , так как вся коллекция должна извлекаться из сценария Asp из IIS, каждый раз, когда запрашивается определенный элемент.

Мне было глупо задаться вопросом, применимо ли это к переменным сеанса ... Будет ли хорошей идеей собрать несколько переменных session.variable, которые я использую при запуске скрипта, один раз для всех?

Следующая статья предполагает (как я тоже считал), что Session.Contents не страдает той же неэффективностью, что и Request.ServerVariables? поскольку IIS предоставляет Sesison единожды для всех: это правда? http://www.4guysfromrolla.com/webtech/092298-3.shtml

ПРИМЕЧАНИЕ: я использую переменные сеанса очень редко, но я ищу каждый бит оптимизации:)

1 Ответ

0 голосов
/ 10 января 2019

Это абсолютно верно.

Краткий ответ: если вам нужна переменная сеанса (или приложение, это одно и то же) один раз, вы можете использовать его напрямую:

<%=session("userLastName")%>, <%=session("userFirstName")%>

Если вам нужна переменная сеанса много раз, сделайте копию локально (в данном примере это массив):

<%
localAryCopy = session("myArray")
for each tmp in localAryCopy
    response.write tmp
next
%>

На прошлой неделе кто-то попросил меня проверить, почему его классическому приложению asp a TTFB (время до первого байта) до 3 секунд. Он использовал 3 переменных сеанса много раз (по 3 для каждого встраивания, в общей сложности около 100 циклов). Я только что сделал локальное копирование, и TTFB упал примерно до 50 мс.

...