عمومی

قابلیت buffering در Asp.Net

قابلیت بافرینگ جهت  افزایش کارایی برنامه های asp.net به کار می رود (این قابلیت  به طور پیش فرض در حالت فعال قرار دارد).Asp.Net پاسخ ها را در قالب یک بافر ۳۰ کیلوبایتی به IIS می فرستد.زمانی buffeing در حالت disable قرار داشته باشد تنها چندین کاراکتر به IIS  ارسال می شود که باعث افزایش حجم فرآیندها می گردد.

برای تغییر بافرینگ کافی است از دستور زیر در فایل web.config استفاده نمایید <pages buffer=”true”>  همچنبن می توان  از دایرکتیو @page به شکل زیر استفاده کرد :

<%@ Page Buffer=”true”%>

Caching :

توسط قابلیت Cachingدر ASP.Net  که باعث  کاهش بار سرور می شود می توان  به شدت کارآیی برنامه را افزایش داد.

داده های cache شده آنهایی هستند که نیاز به ساخته شدن مجدد در هر درخواست را ندارند.در asp.net دو نوع caching وجود دارد :

Output cache :

که صفحات دینامیک و کنترل های کاربری را ذخیره می کنند.

Datacache :

به برنامه های کاربردی اجازه می دهد تا object ها ، Dataset را در حافظه  ی سرور ذخیره کرده تا در هر درخواست مجددا ساخته نشوند.

 Kernel cache:

در صورتیکه از  IIS نسخه ی ۶ به بعد استفاده می کنید این قابلیت در دسترس شماست.  زمانیکه cache خروجی مربوط به asp.net مورد استفاده قرار می گیرد درخواست ها به خود asp.net ارسال می شود. حال با فعال شدن Kernel cache ، خود IIS محتوای cache را دریافت و پاسخ مناسب را به آن خواهد داد.این کار باعث می شود تا کارآیی به طرز چشمگیری افزایش یابد.

[irp posts=”۱۱۴۲۶″ name=”بهینه سازی عملکرد asp.net با استفاده صحیح از Application State و Session State”]

تا جای ممکن از دستور Response.Redirect استفاده نکنید.

به جای استفاده از این دستور از فرمان Server.Transfer استفاده کنید.Response.Redirect پاسخ ها را به client ارسال می کند تا به عنوان یک پاسخ جدید به سرور ارسال شود.این درحالی است که server.Transfer پاسخ ها را مستقیما به سرور می فرستد.تنها زمانی Response.Redirect  را در برنامه خود به کار برید که از authentication  و authorization استفاده کرده باشید و یا نیاز به تغییر Url در مرورگر client داشته باشید.

از اعتبار سنجی سمت سرور استفاده نکنید

تا حد ممکن از اعتبار سنجی client-side استفاده کنید.این کار باعث می شود تا از ارسال پست های اضافی هنگامی که داده ورودی نامعتبر باشد جلوگیری به عمل آید.

از فراخوانی DataBinder.Eval اجتناب کنید :

در مواقعی که از grid یا repeater و . . .  استفاده می کنید از فراخوانی های مجدد آنها جلوگیری نمایید.

به جای آن می توانید Continer.DataBind. را به کار برید چرا که از انعکاس ها (reflection) برای ارزیابی پارامترها استفاده می کند .

از Page.DataBind  استفاده نکنید.

Page.DataBind را فقط در زمانهای مورد نیاز فراخوانی کنید و موقعی که به این کار نیاز داشتید خود کنترل را  به صورت مجزا bind نمایید.فراخوانی این دستور باعث لود شدن DataBind شده که برای همه ی کنترل ها مشترک است و باعث افزایش حجم حافظه می شود.

بهینه سازی View state ها :

هنگامی که به viewstate نیازی ندارید، آن را غیر فعال کنید. view state همچنین توسط کنترل های سرور مورد استفاده قرار می گیرد بنابراین می توانند وضعیت خود را بعد از postback حفط کنند. asp.net همه ی  اشیا و کنترل های موجود در vewistate را به صورت سری قرار می دهد و آنها را به یک فیلد مخفی در مرورگر ارسال می کندحال اگر view state به درستی مدیریت نشود اندازه صفحه زیاد و به دنبال آن ترافیک شبکه افزایش می یابد.در موارد زیر بایستی Viewstate را غیر فعال کنید :

۱- Page عملیات postback نداشته باشد .

۲-  کنترل های برنامه رویدادهایی مانند onclick را مدیریت نکنندو یا خصوصیات کنترل ها در هر postback  تنظیم شود .

۳-  در هر postback کنترل مجددا ایجاد شود.

برای غیر فعالسازی آن از دو دستور زیر استفاده می شود :

<pages enableViewState=”false”>
و یا�
<%@ Page EnableViewState=”false”%>

استفاده از قابلیت Http compression :

این قابلیت از ویژگی های IISبوده که به معنای فشرده سازی داده های ارسالی به client با تکنیک هایی مانند GZIP و deflate است.مرورگر کار از حالت فشرده خارج کردن داده ها را انجام می دهد.

از دسترسی به دیتابیس برای چند بار متوالی خودداری کنید :

کد خود را تجزیه کرده و تعداد دفعات دسترسی به دیتابیس را کاهش دهید.مثلا می توانید چندین درخواست فراخوانی رکوردها را در قالب یک store procedure قرار دهید.

منابع :

http://msdn.microsoft.com/en-us/library/ff647787.aspx

http://weblogs.asp.net

ایران هاست

مشخصات مدیر

دیدگاهتان را بنویسید

نوشته های مشابه

دکمه بازگشت به بالا