Hôm nay tôi đã được giao nhiệm vụ cải thiện hiệu suất của một trang ASP cổ điển. Viết lại mã trong ASP.NET là tại thời điểm này không phải là một lựa chọn vì vậy tôi đã lên những thách thức để squeeze mỗi ounce hiệu suất tôi có thể nhận được ra khỏi trang.Mẹo về hiệu suất cho asp cổ điển?
Trang này bao gồm "CHỌN BLA TỪ BLA" cơ bản thành một vài bản ghi. Một vòng lặp while lặp lại thông qua các tập bản ghi và các biến đó <tr> <td> chuỗi. Trong vòng lặp while có một loạt các điều kiện và không có điều gì. Có 3 chương trình con được gọi là sử dụng các biến toàn cầu (không phải biến cục bộ được truyền dưới dạng tham số).
Vì vậy, không có gì thực sự gây sốc hoặc bất cứ điều gì. Trước khi tôi bắt đầu tối ưu hóa, vòng lặp mất khoảng 15 giây để hoàn tất. Trong số 15 giây xung quanh 6 đã được đưa lên bởi các truy vấn sql.
Sau khi thay đổi một vài thứ xung quanh, tôi đã xoay xở để đạt được khoảng 7 giây.
Những điều mà tôi đã thay đổi xung quanh là:
Thay vì làm SELECT *, tôi chỉ chọn các cột mà tôi cần. Truy vấn giảm xuống trung bình 4 giây. Đó là một truy vấn khá nặng với lượt xem trong chế độ xem.
Tôi đã xóa tất cả chuyển ngữ cảnh trong vòng lặp. Vì vậy, tôi đã thay đổi những thứ như <% = bla%> thành Response.Write (bla).
3 chương trình con được định nghĩa là hàm, nhưng chúng được sử dụng làm phụ (không có kết quả). Vì vậy, tôi đã thay đổi các chức năng để subs. cái đó có giúp ích không?
Sau khi thực hiện thay đổi, tôi thấy rằng phần lớn thời gian đã được thực hiện bởi một trong các chương trình con. Tôi không có thời gian đủ ngày hôm nay để thay đổi chương trình con, nhưng nó bao gồm những thứ như:
- ngày chức năng: DATEADD, DATEDIFF
- mảng chức năng: UBound (arr) và chỉ số tham khảo: arr (I)
- chức năng string: trái, giữa, phải, dưới, thay thế
Với mỗi cuộc gọi trang, chương trình con được chạy khoảng 1600 lần.
Bất kỳ ai có trải nghiệm nào với việc tối ưu hóa các trang asp cổ điển? Bạn có mẹo nào để tối ưu hóa không? Những gì tôi đang tìm kiếm là cải thiện mã bên trong một câu lệnh vòng lặp do ...
Tôi là một nhà phát triển ASP.NET có kinh nghiệm và biết khá nhiều về cải thiện hiệu suất trong ASP.NET. ASP cổ điển sử dụng một "động cơ" khác nhau vì vậy tôi đã tự hỏi nếu có ai ra có bất kỳ cái nhìn sâu sắc vào việc cải thiện hiệu suất của ASP cổ điển.
Cảm ơn!
M
PS: Vâng, tôi biết rằng classic ASP sử dụng VBScript
Nó dành cho một ứng dụng lập kế hoạch và người xây dựng nó tạo ra một vòng lặp lớn trong suốt cho thấy việc lập kế hoạch nhiều bản ghi cho cả tháng (30 cột và khoảng 20 hàng). – mghaoui