Tùy thuộc vào những gì bạn đang làm, tôi không mong đợi sẽ thấy nhiều cải tiến hơn chỉ bằng cách sử dụng HttpHandler. Tôi sẽ bắt đầu bằng cách viết HttpHandler và xem nó hoạt động như thế nào. Nếu bạn cần nó nhanh hơn, hãy thử xem xét kỹ hơn những thứ bạn đang thực sự thực hiện trong khi xử lý yêu cầu và xem những gì có thể được tối ưu hóa. Ví dụ: nếu bạn đang thực hiện bất kỳ việc ghi nhật ký nào vào cơ sở dữ liệu, hãy thử ghi vào cơ sở dữ liệu cục bộ thay vì qua mạng. Nếu nó vẫn không đủ nhanh, thì có thể nhìn vào viết một cái gì đó cấp thấp hơn. Cho đến thời điểm đó, tôi sẽ gắn bó với bất cứ điều gì dễ nhất để bạn viết.
Để tham khảo, tôi đã viết một máy chủ quảng cáo trong ASP.NET (sử dụng HttpHandlers) có thể phân phát quảng cáo (bao gồm nhắm mục tiêu và ghi lại hiển thị vào cơ sở dữ liệu cục bộ) trong 0-15ms dưới tải. Tôi nghĩ rằng tôi đã làm khá một chút về chế biến - nhưng đó là một thời gian phản ứng khá tốt IMHO.
Cập nhật sau vài tháng:
Nếu bạn rõ ràng tất cả các HttpModules được bao gồm theo mặc định, điều này sẽ loại bỏ một số tiền hợp lý của chi phí. Theo mặc định, HttpModules sau đây được bao gồm trong mỗi trang web thông qua các tập tin máy cấp web.config:
- OutputCache
- Session (cho trạng thái phiên)
- WindowsAuthentication
- FormsAuthentication
- PassportAuthentication
- RoleManager
- UrlAuthorization
- FileAuthorization
- AnonymousIdentification
- Hồ sơ
- ErrorHandler
- ServiceModel
Như tôi đã nói ở trên, máy chủ quảng cáo của tôi không sử dụng bất kỳ trong số này, vì vậy tôi đã chỉ làm điều này trong ứng dụng của web.cấu hình:
<httpModules>
<clear />
</httpModules>
Nếu bạn cần một số của những người, nhưng không phải tất cả, bạn có thể loại bỏ những người bạn không cần:
<httpModules>
<remove name="PassportAuthentication" />
<remove name="Session" />
</httpModules>
ASP.NET MVC Lưu ý: ASP.NET MVC yêu cầu mô-đun trạng thái phiên trừ khi bạn làm điều gì đó cụ thể để giải quyết nó. Xem câu hỏi này để biết thêm thông tin: How can I disable session state in ASP.NET MVC?
Cập nhật cho IIS7: Thật không may, mọi thứ không đơn giản trong IIS7. Đây là how to clear HTTP Modules in IIS7
Nguồn
2009-02-04 03:53:47
Bạn đã chết: Tôi sẽ thực hiện một số lần đăng nhập vào cơ sở dữ liệu. Và tôi đã lên kế hoạch tạo các tệp văn bản nhỏ hơn là chuyển sang db. Các tệp sẽ được xử lý sau. Nhưng dựa trên kinh nghiệm của bạn và thời gian đáp ứng ấn tượng mà bạn đạt được, tôi sẽ tiếp tục với một HttpHandler và truy cập db đơn giản. –
Những gì chúng tôi đã làm là đặt một thể hiện SQL Express trên các máy chủ web được ghi vào, và sau đó có một công việc kéo tất cả dữ liệu từ các cá thể máy chủ web vào máy chủ SQL chính của chúng tôi. –
Tuyệt vời, cảm ơn bạn đã cập nhật. Rất hữu dụng. –