Đăng nhập | Đăng ký

Danh sách thành viên | Cá nhân | Nhà đất, bất động sản

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
142  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
142  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
142  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
142  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
vspforum.zip
Ma nguon vspforum ngay xua
aspnet 4/18/2023 6:38:37 AM 6
pdfjs.rar
pdfjs 2017 : hiển thị tốt trên iphone 11, 12, 13 không lỗi, bản 2012 sẽ lỗi trên iphone
aspnet 6/21/2022 11:52:48 AM 2
pdfjs2.rar
Xem file pdf bằng viewer.hml cua pdfjs (thư viện chuẩn mozilla) 2012. https://mozilla.github.io/pdf.js/getting_started/#download có thể download bản prebuild tại đây
aspnet 6/21/2022 11:52:04 AM 2
runner.zip
using three.js, orbitcontrol to view an object move random on map. Di chuyển 1 đồ vật ngẫu nhiên trên bản đồ, sử dụng với demo nhân viên di chuyển trong văn phòng. Toàn js download về là chạy
aspnet 12/5/2019 5:55:14 PM 0
gmap.zip
google map + marker
aspnet 7/17/2019 2:25:05 PM 1
vinsmarthomeservice.zip
java post json to api, use AsyncTask, event listener
aspnet 7/9/2019 5:00:10 PM 1
fblogin.zip
Login facebook bang javascript SDK
aspnet 7/9/2019 9:16:37 AM 0
autocomplete-location.zip
autocomplete location geo from google place, html + js
aspnet 7/4/2019 4:37:55 PM 2
WebAPI.zip
api for android access db (v1.0.0)
aspnet 7/4/2019 9:14:17 AM 8
KydientuPdf.zip
Ky dien tu file PDF su dung itextsharp
aspnet 4/9/2019 3:30:37 PM 9
GooglePlusLogin.zip
Login Google Plus account, C#, web asp.net ver2.0. Simple connect google APIs. Send key, get token, get full account info
aspnet 6/1/2018 10:41:12 AM 11
WebApplication1.rar
Sample su dung thuat toan ma hoa tripDES, co khoa bi mat (privateKey)
aspnet 3/30/2018 10:06:35 PM 8
NETMdbToolsTestApp.rar
dotNet MdbTools for Access 2003/2007/2016 without Microsoft Jet Engine, source C#, https://www.codeproject.com/Articles/283626/MsAccess-MdbTools-with-MFC-and-NET
aspnet 3/26/2018 11:43:16 PM 1
Cryptography_MD5_TriDES_src.zip
Thuật toán mã hóa 2 chiều TriDES, gồm Encrypt và Decrypt, aspnet 2.0
aspnet 3/22/2018 11:20:44 AM 3
mvc.rar
sample project MVC on C#
aspnet 3/20/2018 9:25:36 AM 9
EduPortal.rar
Edu portal frame work for VB.NET
aspnet 3/14/2018 12:00:41 AM 13
AutoEntity.rar
Gencode vb.net visual studio 2015. dotnet v2.0
aspnet 3/13/2018 11:59:16 PM 2
GenCode.rar
Gencode XML, XSLT, Info, DAL .. engine enterprise for quick app database
aspnet 2/5/2018 9:37:28 AM 9
DataXml.rar
Read DB from SQL to XML file, Convert string TCVN to Unicode
aspnet 1/29/2018 2:15:45 PM 4
DesktopModules.rar
Module quản lý tin tức, CMS, quản lý nhóm tin trên dotnetnuke 6.x
aspnet 3/7/2013 4:47:49 PM 1714
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,