Сегодня мне было поручено улучшить производительность классической страницы ASP. Переписывание кода в ASP.NET на данный момент не является вариантом, поэтому я взял вызов, чтобы сжать каждую унцию производительности, которую я могу выйти со страницы.Рекомендации по производительности для классического asp?
Страница состоит из базового слова «SELECT bla bla FROM bla» на пару наборов записей. Цикл while повторяется через эти наборы записей и отвалы <tr> <td> строки. Внутри цикла while есть куча условностей и еще много чего. Существует три подпрограммы, которые используют глобальные переменные (а не локальные переменные, переданные как параметры).
Так что ничего действительно шокирующего и ничего. Прежде чем я начал свою оптимизацию, цикл занял около 15 секунд. Из 15 секунд около 6 были заняты sql-запросом. После того, как я изменил положение вещей, мне удалось развить его до 7 секунд.
Вещи, которые я изменившие вокруг являются:
Вместо того чтобы делать SELECT *, я выбрал только те столбцы, которые мне нужны. Запрос снизился в среднем на 4 секунды. Это довольно тяжелый запрос с представлениями в представлениях.
Я удалил все контекстные переключения в цикле. Поэтому я изменил такие вещи, как <% = bla%> на Response.Write (bla).
3 подпрограммы были определены как функции, но они использовались как суб (без результата). Поэтому я сменил функции на субтитры. Это помогает?
После внесения изменений я обнаружил, что большую часть времени занимала одна из подпрограмм. У меня не было достаточно времени сегодня, чтобы изменить подпрограмму, но она состоит из таких вещей, как:
- Дата функции: DATEADD, DATEDIFF
- массив функции: UBOUND (обр) и индекс ссылок: аранжировка (I)
- Строковые функции: слева, в середине, справа, ниже, замените
С каждой страницы вызова, что подпрограмма выполняется около 1600 раз.
У кого-нибудь есть опыт оптимизации оптимизационных страниц asp? У вас есть хорошие советы по оптимизации? То, что я ищу, - это улучшение кода в инструкции do ... loop.
Я опытный разработчик ASP.NET и немного знаю об улучшении производительности в ASP.NET. Классический ASP использует другой «движок», поэтому мне было интересно, есть ли у кого-нибудь какие-либо идеи по улучшению производительности классического ASP.
Спасибо!
M
PS: Да, я знаю, что классический ASP использует VBScript
Это приложение для планирования, и человек, который его создал, с энтузиазмом создал большой цикл while, который показывает планирование множества записей за целый месяц (30 столбцов и около 20 строк). – mghaoui