Dziś miałem za zadanie poprawić wydajność klasycznej strony ASP. Przepisanie kodu w ASP.NET nie jest w tej chwili opcją, więc podjąłem wyzwanie, by wycisnąć każdą uncję wydajności, którą mogę wydostać się ze strony.Wskazówki dotyczące wydajności dla klasycznego bolusa?
Strona składa się z podstawowego "SELECT bla bla FROM bla" na kilka zestawów rekordów. Pętla while iteruje przez te zestawy rekordów i zrzuca strun. W pętli while znajduje się szereg warunków warunkowych i inne. Istnieją 3 wywoływane podprogramy, które używają zmiennych globalnych (nie zmienne lokalne przekazywane jako parametry).
Nic tak naprawdę nie jest szokujące ani nic. Zanim rozpocząłem optymalizację, wykonanie pętli zajęło około 15 sekund. Z 15 sekund do 6 zajęło zapytanie sql.
Po zmianie kilku rzeczy udało mi się uzyskać około 7 sekund.
rzeczy, które zmieniły wokół są:
Zamiast robić SELECT * wybrałem tylko te kolumny, które potrzebne. Zapytanie trwało średnio 4 sekundy. To dość ciężkie zapytanie z widokami w widokach.
Usunąłem wszystkie przełączanie kontekstu w pętli. Zmieniłem rzeczy takie jak <% = bla%> na Response.Write (bla).
3 podprogramy zostały zdefiniowane jako funkcje, ale zostały użyte jako podrzędne (bez wyniku). Więc zmieniłem funkcje na subs. To pomaga?
Po wprowadzeniu zmian stwierdziłem, że większość czasu została podjęta przez jeden z podprogramów. Nie miałem czasu na tyle szeroki, aby zmienić podprogram, ale składa się z rzeczy, takich jak:
- data funkcji: DateAdd, DateDiff
- funkcje tablicy: Ubound (ARR) oraz indeks bazowania: arr (I)
- funkcje łańcuchowe: lewo, mID, prawy, dolny, zastąpić
Przy każdym wywołaniu strony, że podprogram jest 1600 razy biegać.
Ktoś ma jakieś doświadczenia z optymalizacją klasycznych stron asp? Czy masz jakieś dobre wskazówki dotyczące optymalizacji? To, czego szukam, to poprawa kodu wewnątrz instrukcji pętli do ...
Jestem doświadczonym programistą ASP.NET i wiem trochę o poprawie wydajności w ASP.NET. Klasyczna ASP używa innego "silnika", więc zastanawiałem się, czy ktokolwiek ma wgląd w poprawę wydajności klasycznej ASP.
Dzięki!
M
PS: Tak wiem, że klasyczny ASP używa VBScript
Jest to aplikacja do planowania, a osoba, która go zbudowała, entuzjastycznie stworzyła pętlę o dużej długości, która pokazuje planowanie wielu rekordów na cały miesiąc (30 kolumn i około 20 wierszy). – mghaoui