Рекомендуется: код для сайта Max Movie для генерации RSS -канала Некоторое время назад, чтобы добавить функцию подписки RSS на мой сайт фильма, я написал код ASP, который динамически генерирует RSS -канал. Я не могу загрузить вложения, поэтому я просто вставил код. В любом случае это не долго. Друзья, которые используют Max в качестве сайта фильма, могут использовать его напрямую. Измените другие типы сайтов.
Разработчики ASP постоянно работают, чтобы повысить производительность и масштабируемость в своих проектных проектах. К счастью, есть много книг и сайтов, которые дают отличные советы по этому поводу. Тем не менее, основой этих предложений является заключение, сделанное из структуры работы платформы ASP, и не существует измерения фактического улучшения производительности. Поскольку эти предложения требуют более сложных процессов кодирования и снижения читаемости кодирования, разработчики могут только измерять себя, стоит ли платить за повышение эффективности их приложений ASP без вида фактического операционного эффекта.
Эта статья разделена на две части, и я представлю некоторые результаты теста на производительность, чтобы помочь разработчикам определить, стоит ли конкретная инициатива не только для будущих проектов, но и может обновить оригинальный проект. В первой части я рассмотрю некоторые основные проблемы в разработке ASP. Во второй части будет включена некоторая оптимизация функций ADO, и их результаты будут сравниваться со страницей ASP, которая вызывает объект VB COM для выполнения той же функции ADO. Эти результаты открывают глаза и иногда удивительны.
В этой статье мы ответим на следующие вопросы:
* Какой наиболее эффективный способ написать контент, сгенерированный ASP, в поток отклика?
* Следует включить буфер?
* Должен ли я рассмотреть возможность добавления комментариев в код ASP?
* Должен ли язык по умолчанию быть явно установленным для страницы?
* Следует ли отключить состояние сеанса, если не требуется?
* Должны ли логика сценариев быть размещены в подпрограммы и области функций?
* Каковы эффекты использования, включают файлы?
* Какая нагрузка будет применена при выполнении обработки ошибок?
* Оказывает ли настройка обработки контекста какое -либо влияние на производительность?
Все тесты проводились с использованием инструмента Microsoft Web Applications Focus (WAST), бесплатного инструмента, который можно найти здесь. Я создал простой тестовый скрипт с WAST, неоднократно вызывая тест на странице ASP, описанный ниже (более 70 000 раз каждый). Время реакции основано на среднем последнем общем времени байта (TTLB), то есть с момента запрашиваемого времени до времени, когда инструмент получает последний бит данных с сервера. Наш тестовый сервер - Pentium 166 с 196 МБ памяти и Pentium 450 с 256 МБ памяти. Вы можете подумать, что производительность этих машин не очень продвинута, но не забывайте, что мы не тестируем емкость сервера, мы просто проверяем время, необходимое серверу для обработки одной страницы за раз. Эти машины не выполняют другую работу во время теста. Тестовые сценарии WATST, отчеты о тестировании и все испытательные страницы ASP включены в файл ZIP, и вы можете просмотреть и проверить его самостоятельно.
Как наиболее эффективный способ написать контент, сгенерированный ASP, в поток отклика?
Одной из основных причин использования ASP является генерирование динамического контента на сервере. Поэтому очевидно, что отправной точкой нашего теста является определение наиболее подходящего способа отправки динамического контента в поток ответов. Среди многих вариантов два являются самыми основными: один из них - использовать встроенные теги ASP, а другой - использовать ответ.
Чтобы проверить эти варианты, мы создаем простую страницу ASP, где определяются некоторые переменные и их значения вставляются в таблицу. Хотя эта страница проста и не очень практична, она позволяет нам разделять и проверять некоторые отдельные вопросы.
Использование встроенных тегов ASP
Первый тест включает в себя использование встроенного тега ASP < %= x %>, где x является назначенной переменной. Этот метод, безусловно, самый простой для выполнения, и он сохраняет HTML -часть страницы в формате, который легко читать и поддерживать.
| <% Опция явно Dim FirstName DIM LASTNAME Dim Middleinitial Dim Address Dim City DIM CATE Dim PhonNeckumber Dim Faxnumber Dim Email DIMDATE FirstName = Джон Middleinitial = q Lastname = public Адрес = 100 главная улица Город = Нью -Йорк Состояние = Нью -Йорк Phonenumber = 1-212-555-1234 FaxNumber = 1-212-555-1234 Электронная почта = [email protected] Дата рождения = 1/1/1950 %> <html> <Голова> <Title> Ответ -тест </ title> </Head> <Тело> <h1> Ответ -тест </h1> <Таблица> <tr> <td> <b> Имя: </b> </td> <td> < %= firstname %> </td> </tr> <tr> <td> <b> Средняя начальная: </b> </td> <td> < %= middleinitial %> </td> </tr> <tr> <td> <b> Фамилия: </b> </td> <td> < %= lastname %> </td> </tr> <tr> <td> <b> Адрес: </b> </td> <td> < %= адрес %> </td> </tr> <tr> <td> <b> Город: </b> </td> <td> < %= city %> </td> </tr> <tr> <td> <b> состояние: </b> </td> <td> < %= state %> </td> </tr> <tr> <td> <b> Номер телефона: </b> </td> <td> < %= phonenumber %> </td> </tr> <tr> <td> <b> номер факса: </b> </td> <td> < %= faxnumber %> </td> </tr> <tr> <td> <b> Электронная почта: </b> </td> <td> < %= электронная почта %> </td> </tr> <tr> <td> <b> Дата рождения: </b> </td> <td> < %= dirthdate %> </td> </tr> </Table> </Body> </Html> |
Полный код для /app1/response1.asp
Предыдущий лучший (частота ответов) = 8,28 мсек/страница
Используйте ответ.
Многие лучшие учебные документы рекомендуют избегать предыдущего метода. Основная причина состоит в том, что во время страницы вывода и страницы обработки применяется время реакции, если веб -сервер должен конвертировать между отправкой чистого HTML и обработчиками сценариев, возникает проблема, называемая контекстом. Когда большинство программистов слышат это, их первой реакцией является завершение каждой линии исходного HTML в функцию response.write.
| … Response.write (<html>) Response.write (<голова>) Response.write (<title> Ответ -тест </title>) Response.write (</head>) Response.write (<body>) Response.write (<h1> тест ответа </h1>) Response.write (<Таблица>) Response.write (<tr> <td> <b> Имя: </b> </td> <td> & firstname & </td> </tr>) Response.write (<tr> <td> <b> Средний начальный: </b> </td> <td> & middleinitial & </td> </tr>) ... < |
/app1/response2.asp фрагмент
Предыдущий лучший (частота ответов) = 8,28 мсек/страница
Время реакции = 8,08 мсек/страница
Разница = -0,20 мсек (снижение на 2,4%)
Мы можем видеть, что использование этого подхода очень мал по производительности по сравнению с использованием встроенного тега, возможно, потому что страница загружает сервер кучей небольших функциональных вызовов. Самым большим недостатком этого подхода является то, что, поскольку HTML теперь встроен в сценарии, код сценария становится более многословным и труднее читать и поддерживать.
Поделиться: 20 очень полезных примеров в программировании ASP (I) 1. Как использовать ASP для определения виртуального физического пути вашего веб -сайта Ответ: Используйте метод MAPPATH: < % = server.mappath () %> 2. Как я узнаю браузер, используемый пользователем? Ответ: Используйте метод объекта запроса:
5 страниц в целом предыдущей странице 12345Next страница