Đăng nhập | Đăng ký
Đăng nhập , với với

Diễn đàn    ASP.NET & Sharepoint MOSS, WSS 2007    Cache tăng tốc load trang asp.net và Your cache provider (advance)  

Thành viênNội dung
coder

lap trinh khong bien gioi
137  bài
21-02-2010 09:14:28
Thằng DNN cho phép người dùng có thể viết riêng Cache Provider của mình, thằng aspnet cũng thế, chúng ta có thể viết thoải mái. Cache hỗ trợ tăng tốc website (cái này thì rõ rồi).

Theo mô hình chúng ta thường làm web theo mô hình sau :

Data SQL -> Html (trong trang ASPX)

Nếu có cache mô hình sẽ như sau

Data SQL -> Cache -> Html

nếu trong cache tồn tại giá trị rồi thì không cần kết nối vào SQL nữa, vì thông thường để load 1 trang chúng ta dùng tương đối nhiều connection (> 3 connection). Với những đồng chí code không tối ưu số connection có thể lên đến 20 hoặc 50 conn. Tốc độ load trang sẽ rất rùa. Nếu đọc từ cache thì tốc độ load trang sẽ cải tiến hơn nhiều.

Các vấn đề cần giải quyết với cache:
- Cache manager phải tồn tại trong suốt thời gian website chạy (không thì load ra bằng niềm tin). Để tồn tại trong suốt thời gian chạy thì chỉ có biến HttpApplication là active (là sống - alive)
- Hỗ trợ các hàm cơ bản : insert, remove, clear ...
- Hỗ trợ các kiểu dữ liệu khác nhau (, nảy sinh nhiều vấn đề với thằng này)
---
http://coder.awas.vn
http://mobile.awas.vn
http://vtv.awas.vn
http://baihatviet.awas.vn
 
coder

lap trinh khong bien gioi
137  bài
21-02-2010 09:23:17
Vấn đề kiểu dữ liệu (datatype)

Chúng ta biết rằng các kiểu dữ liệu do chúng ta định nghĩa là liên thiên. Các kiểu dữ liệu thường thấy của chúng ta là :

- UserInfo (n trường dữ liệu : Fullname, Email, Address ...)
- PostInfo (m trường : Username, PostedDate, ...)

Vấn đề đặt ra là các biến này có lưu được vào Cache không ? Xin thưa là ông Microsft (viết ASP.NET) chẳng hiểu các kiểu dữ liệu mà các bác định nghĩa nó thế nào đâu. Nên cái Cache Provider (default) của Microsoft chỉ thực sự cache các biến kiểu dữ liệu cơ bản (int, float, long, string...), tức là MS Cache default provider sẽ lưu các biến kiểu dữ liệu cơ bản (int, float, long, string...) vào đâu đó trên disk, còn các kiểu dữ liệu UserInfo, PostInfo ... (do bạn định nghĩa) nó bó tay chẳng lưu nổi vào disk đâu. Bởi vì hệ thống đek làm thế nào mà serialize được (cái này dùng để lưu ra disk). Nên kết luận đưa ra là :


Nếu Cache các kiểu dữ liệu do người dùng định nghĩa thì thực tế là không cache.


Tức là không tồn tại mô hình này :
- Data SQL -> Cache -> Html
Nó chỉ thực hiện cái này
- Data SQL -> Html

Cái này em tìm ra do thực nghiệm (debug) tại function connection vào SQL sau khi đã đặt cache, trong mỗi lần load trang, lần nào em cũng thấy cái query vào DB thực hiện, tức là chả cache keo được cái gì nếu chúng ta cố cache Custom Class Definition. Nhục nhục! Nên nếu bác nào cache thì cache các biến cơ bản thôi nhé.
---
http://coder.awas.vn
http://mobile.awas.vn
http://vtv.awas.vn
http://baihatviet.awas.vn
 
coder

lap trinh khong bien gioi
137  bài
21-02-2010 09:40:41
Vấn đề Live long (sử dụng HttpApplicationState)

Cái cache manager phải sống đủ dài, chứ không thì hệ thống đọc = niềm tin, lại phải connect vào DB tốc độ trang lại rùa. Vấn đề chính ở đây là nếu lưu vào ApplicationState thì 1 biến của bạn thực tế có độ lớn bao nhiêu và kiểu dữ liệu là gì? thực tế cache xong thì hệ thống có chạy nhanh hơn không ? Nó chiếm bao nhiêu RAM ? vì thực tế ApplicationState là lưu trong RAM.

Dùng ApplicationState có 1 cái dở nếu lưu nhiều quá mà IIS Application Pool của bạn được phân bé quá (sảy ra khi thuê host sinh viên giá rẻ) thì bạn sẽ bị lỗi :


Server too bussy


Chẳng làm được việc gì khác. Cho nên mình đã cố tự làm 1 cái serialize cho các loại DataType + code thêm Cache Provider Manager để làm cái việc write các Custom Class ra file text. Nhưng cũng chẳng ăn thua vì lỗi Server too bussy.

Như vậy hệ thống của Microsoft viết Cache giúp chúng ta 1 số chức năng :
- Tránh tràn Application Pool
- Chỉ serialize (ghi ra file) những biến tương đối nhỏ. Tối ưu hóa về bộ nhớ, nếu tràn MS Cache cho phép tự động xóa 1 số biến. Cái này giúp các hệ thống của MS không bị treo hay phát sinh những lỗi kỳ quặc.

Các hệ thống tự viết được cái nhanh thì lại ngốn RAM nhiều, không có khả năng triển khai một cách linh động.


---
http://coder.awas.vn
http://mobile.awas.vn
http://vtv.awas.vn
http://baihatviet.awas.vn
 
shinichiqn


1  bài
29-04-2010 06:27:49
mình đóng góp 1 ý nhé . các bạn thử dùng pattern singleton xem mình làm thử rồi . khá ok :D
 
coder

lap trinh khong bien gioi
137  bài
30-04-2010 12:26:00
mình đóng góp 1 ý nhé . các bạn thử dùng pattern singleton xem mình làm thử rồi . khá ok :D


Tức là theo bạn thì để giải quyết vấn đề livelong thì chúng ta sử dụng singleton. Singleton nghĩa là 1 đối tượng chỉ tồn tại duy nhất, nó không bao giờ null và mất đi.

tức là nó chỉ có như sau :

if(instacne == null)
instance = new Singleton();
return instance;

Nhưng cái này khác với life cycle của application state trong dotnet.

---
http://coder.awas.vn
http://mobile.awas.vn
http://vtv.awas.vn
http://baihatviet.awas.vn
 
kazuvn


1  bài
05-06-2010 11:28:18
Đọc qua thấy khá hay, mình đang làm aspx nhưng còn gà quá :(

Hiện tại site mình đang làm chạy hơi chậm do phải query lượng lớn dữ liệu ra và số lần query cũng nhiều nên muốn áp dụng thêm cache để giảm tải cho sql.

Nhờ coder hướng dẫn chi tiết hơn về cache manager với, thanks trước :)
 

Chủ đề gần đây :

Cùng loại :

 
Tên file Người đăng Ngày Lượt
News Ticker Demo.rar
jQuery Carousellite cho cuộn các khối tin nhẹ nhàng mượt mà, sử dụng cho module Tin tức (CMS) hoặc giới thiệu sản phẩm
aspnet 5/7/2011 8:59:52 AM 475
cms_source_dll_sql_2010.rar
source C# + SQL Script + Dll module CMS trên DNN 5x, (bản chạy ổn định không lỗi)
aspnet 9/5/2010 6:05:54 PM 1859
killforever.rar
Script diệt virus forever.exe (lây nhiễm qua USB) mà không cần cài lại window
aspnet 7/28/2010 6:51:30 AM 264
CSharp Coding Standards.pdf
C# Coding standard, for all user, quy tắc viết mã lập trình c# dotnet.
aspnet 6/1/2010 8:27:39 AM 1228
weather_forex_gold.rar
module DNN : "vàng + thời tiết + tỷ giá ngoại tệ" của seekill
coder 3/11/2010 3:50:09 AM 1089
Training DotNetNuke.zip
Tài liệu hướng dẫn cài đặt DNN, tạo module DNN đơn giản, nâng cao
quanlv 9/30/2009 9:11:36 AM 2907
Viet va them 1 module don gian vao website.doc
Hướng dẫn viết module đơn giản trên DNN (word) có hình, gửi bởi vinahana
aspnet 9/18/2009 6:15:24 PM 1457
Moduel NEWs Demo.zip
Một số module bao gồm: News, WorkScheduler, QA, Comment, Menu, ...
quanlv 8/22/2009 10:44:15 AM 2543
MenuDNN5.rar
Menu DNN 51 Page.aspx
aspnet 7/21/2009 12:22:38 PM 1802
diendan.zip
Cài đặt diễn đàn (VSP) chỉ với 4 bước.
aspnet 6/15/2009 2:18:13 AM 1296
roll_updown.zip
Roll up, roll down news list using javascript, simple, easy to use.
radiogaga 6/1/2009 11:29:51 AM 423
rotator-1.0.0.rar
Auto Scroll News - tự động cuộn tin tức bằng JS
dotnetvn 5/30/2009 3:21:22 PM 623
captcha2.rar
CAPTCHA sinh ngẫu nhiên : size, font, position, color ... vẽ line gây nhiễu chống reCAPTCHA bot.
tieuphu 5/30/2009 2:34:42 PM 609
MenuDNN.zip
Menu Dọc cho DNN (Tác giả Võ Thế Quang)
biennv 5/27/2009 8:07:47 AM 1405
Gioi_thieu_san_pham_unisched4.zip
Giới thiệu phần mềm xếp thời khóa biểu đại học (University Scheduling 4.0) : áp dụng cho mô hình xếp thời khóa biểu niên chế, tại các trường đại học và cao đẳng tại việt nam
khanhjin 5/12/2009 5:00:02 PM 2842
HitCounterInDatabaseASPNET.zip
HitCounter
nguyentx 4/20/2009 4:38:04 PM 561
s3Slide.rar
Slide show chuyên nghiệp, giống tintuconline.com.vn
coder 4/9/2009 9:34:41 AM 2233
XMLPROG.zip
XML Programing C# dotnet
aspnet 4/4/2009 10:02:43 AM 603
menu_vnexpress.rar
Tạo menu giống vnexpress = xsl transform, C# dotnet, javascript(Toàn bộ mã nguồn).
coder 3/30/2009 10:14:50 PM 2363
DesktopModules.rar
CMS dotnetnuke + Image Library + Core CMS (DNN Data Provider) version 1.1
aspnet 3/30/2009 5:23:14 PM 1936
CODERVN.NET
Công ty cổ phần công nghệ và dịch vụ AWAS
Công ty cổ phần công nghệ và dịch vụ AWAS, cổng thông tin, chính phủ điện tử, phần mềm quản lý điểm, quản lý sinh viên, http://awas.vn, http://awas.com.vn, phần mềm ứng dụng, dịch vụ công trực tuyến, thiết kế website, thiet ke web, thiết kế web, điện lực, phần mềm quản lý đào tạo, cao đẳng, đại học,cổng thông tin tích hợp, cổng thông tin điện tử, webportal, thư viện điện tử, electric library, library online, email, web, quản lý quan hệ khách hàng, CRM, dịch vụ công trực tuyến, phần mềm hành chính một cửa,