ASP.NET

بهینه سازی و افزایش سرعت ASP.NET

در این مقاله از گروه تبلیغاتی فورسی قصد داریم نکاتی را معرفی کنیم که در بهینه سازی و افزایش کارایی و سرعت برنامه های ASP.NET تاثیر بسزایی دارند.
اگرچه ASP.NET مدل جدیدی از برنامه‌نویسی تحت وب می‌باشد و آمده است که نواقص و کمبود های قبلی را برطرف نموده و به کارایی برنامه‌های تحت وب بی افزاید، اما شما همچنان نیاز دارید که جهت کارایی و بهینه بودن برنامه‌هایتان نکاتی را رعایت کنید. این نکات جهت افزایش کارایی، سرعت و صرفه‌جویی در مصرف منابع بر روی سرور است.

اما چه روش هایی برای قضاوت در مورد اینکه  چگونه میخواهید بهینه سازی سایت خود را انجام دهید وجود دارد؟

در زیر لیست معیار های بهینه سازی عملکرد  که شما میتوانید بر اساس آن ها قضاوت مناسب انجام دهید را میبینید:

۱.سرعت

۲.  استفاده از گزارش ها

۳. . Exception Handlin مناسب

۴. View State

۵.استفاده مناسب از  Caching

۶.دوری کردن از اعتبار سنجی سمت سرور 

۷. کوچک کردن و فشرده سازی منابع JS، CSS 

۸.مدیریت Session 

۹.  استفاده از Paging برای نتیجه های زیاد و  بزرگ

۱۰.دوری از حلقه های بی نهایت(RoundTrips )غیر ضروری در سرور

۱۱.صفحه ها به صورت دسته ای کامپایل شوند.

۱۲.قسمت بندی نرم افزاز به صورت منطقی 

۱۳.  فشرده سازی HTTP 

۱۴.مدیریت منابع 

۱۵. String Handling

حال ما میتوایم به صورت جداگانه روی هر کدام از آنها بحث کنیم.

ASP.NET

سرعت :

سرعت برنامه تان مهمترین فاکتور است و شما باید حواستان به این اصل باشد. خیلی از فاکتورها در تقویت سرعت برنامه تان وجود دارد:

کاهش حجم صفحه:

کاهش حجم صفحه  یعنی استفاده از فایل های خارجیcss و javascriptبه جای فایل های inline  css  و  javascript.

روش دیگر کاهش حجم صفحه استفاده از نسخه کوچک شده javascript و همچنین استفاده از css و js برای زیبایی صفحه به صورت آنلاین میباشد.

زیباسازی به معنای فرمت دهی به فایل های بدون فرمت( با فاصله،با توضیحات و بدون تو رفتگی) می باشد.

کوچک سازی یعنی حذف کردن فاصله ها،توضیحات،متن های بدون شماره و اندیس وهمچنین استفاده از ویژگی های خوبی که باعث کاهش فضا میشود مثل استفاده از نام های کوتاه  برای متد ها و متغییر ها و نوشتن تمامی کدها در یک خط . مانند رو به رو:

function a(b){ if b == ‘4’){ b=’good’}}.

یکی از موثر ترین راه ها برای جدا کردن منطق برنامه ، جداسازی منطق data access و business layer ها است ،بنابراین در این سطح از برنامه  شما میتوانید آن ها را جداسازی کنید. این کار را به وسیله ساختن user control ای header, body و footer. باید انجام دهید.

کاهش تعداد درخواست ها(Requests)به سرور:

هنگامی که تعداد درخواست های کمتری به سرور برود صفحه شما به صورت موثرتری .خدمات میدهد

کاهش تعداد درخواست ها با استفاده از کاهش تعداد منابع، مثل نوشتن تمام کد های css در یک فایل جداگانه  و همچنین هوشمندسازی قطعه کدهای جاوا اسکریپت.

روش دیگر  نگه داشتن منابع غیر ایستا و حذف header های غیر ضرورری از درخواست است.مانند شماره نسخه برنامه و غیره.

استفاده از CDN (Content Delivery Network) که این مورد، فایل های مورد نیاز را از نزدیک ترین سرور موجود دانلود میکند و درخواست جاری را اگر دیگر وب سایت ها از  فایل های پلاگین جی کوئری یکسان استفاده کنند ذخیره میکند.*

استفاده از گزارش ها در ASP.NET

از گزارش IIS برای دنبال کردن مسائل به صورت هفتگی یا ماهانه  برنامه کاربردی  تان(application)استفاده کنید، و بهتر آن است که به صورت روزانه آن را نگاه اندازید، عموما گزارشات iss شامل اطلاعات درمورد سرورتان، تاریخ و زمان span، صفحه ارجاع ،URL  اصلی و خیلی از اطلاعات دیگر و همچنین  کدهای پاسخ HTTP وضعیت که از طریق آن شما می توانید به ماهیت موضوع را درک کنید ، است.

روش دیگر سفارشی سازی مواردی است که می خواهید از آن ها گزارش تهیه کنید. برای این کار یک جدول در پایگاه داده و وارد کردن متن خطاها در آن است.

روش های خوب زیادی برای گزارش گیری خطاها وجود دارند.یکی از بهترین های ابزار های موجود، ابزار Elmah است. که دارای یک محیط پایه پیکربندی است که  از طریق آن شما می توانید به وسیله پیکربندی آن با گزینه ایمیل به شخص مسئول این را پیگیری کنید.

(Error Logging Modules and Handlers) ELMAH 

یک ابزار debugging متن باز برای ASP.NET web services است. وقتی که روی یک ماشین به  web application در حال اجرا اضافه میشود استثناها(exceptions)که در داخل گرداننده رویداtrigger د از ابزار ELMAHهستند پرتاب(thrown)میشوند.

ASP.NET

تا آنجائیکه ممکن است از View State استفاده نکنید:

View State هم مانند Session State برای نگهداری اطلاعات و سابقه یک فرم از منابع سرور استفاده کرده و به حجم صفحات اضافه می کند. از طرفی این حالت بصورت پیش فرض فعال می باشد. لذا در صورتیکه به آن نیاز ندارید از آن استفاده نکنید و حالت آن را در دایرکتیو Page غیرفعال نمائید و همچنین می تواند مقدار ویژگی EnableViewState کنترل ها را نیز false قرار داد.

Session State را در صورت عدم نیاز حتماً غیرفعال نمایید:

بصورت پیش فرض وضعیت Session State برای هر صفحه فعال است. اگر مطمئن هستید که در آن صفحه از متغیرهای Session استفاده نمی کنید، حتما آن را در دایرکتیو Page بالای صفحه تان با قراردادن آن برابر False غیرفعال کنید تا بدین ترتیب منابع اضافی در سرور مصرف نشود. اگر هم مطمئن هستید که در کل برنامه یا سایت تان نمی خواهید از متغیرهای Session استفاده کنید می توانید آن را در web.config بطور کلی غیرفعال کنید (توجه: در اجرای این روش دقت کافی داشته باشید).

از رفت و برگشت (Postback) های زیاد از حد پرهیز کنید:

فرم های وب جهت پردازش باید به سرور ارسال شده و نتیجه پردازش برگشت داده شود. به این عمل یک رفت و برگشت یا Round trip می گویند. از آنجا که این رفت و برگشت ها برای سرور ایجاد بار پردازشی و ترافیک می کنند، سعی کنید بگونه ای از کنترل های وب استفاده کنید که حداقل رفت و برگشت را داشته باشید و تا جائیکه می توانید از پردازش های سمت کاربر (Client side) برای کارهای ساده ماننده بررسی صحت ورود اطلاعات استفاده کنید. در این روش جهت تبادل داده با سرور می توان از Ajax استفاده کرد.

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

استفاده از Page.IsPostback سبب کاهش رفت و برگشت های (Round trip) اضافی می گردد. همچنین به شما کمک می کند که تشخیص دهید چه موقع نیاز به تولید داده جدید برای یک صفحه دارید.

فشرده سازی فایل های css و js:

کاهش زمان بارگزاری صفحات از طریق فشرده سازی فایل های css و js بسیار مفید است و این کار را می توانید با استفاده از افزونه های ویژوال استودیو مانند: Web Essentials و همچنین وب سایت های آنلاین مانند: cssminifier.com و javascript-minifier.com انجام داد. (نمونه کار اجرا شده: darvishihotel.com)

ASP.NET

از SqlDataReader استفاده کنید:

اگر حجم بالایی از داده ندارید یا تنها می خواهید از بانک اطلاعاتی عمل خواندن را انجام دهید حتما از Data Reader استفاده کنید. استفاده از Data Set سبب کندی کار و مصرف بالای منابع می گردد. در کل می توان گفت از کارهایی که به مدت طولانی برنامه را جهت دریافت اطلاعات از سرور بانک اطلاعاتی بلاک می کنند بپرهیزید.

صفحه بندی در نمایش داده ها:

اگر می خواهید رکورد های زیادی را به کاربر نمایش دهید بهتر است قبل از نمایش داده ها را صفحه بندی نموده تا کاربر بتواند سریع تر اطلاعات را مشاهده کند و همچنین منابع سرور بیهوده استفاده نشده باشد.

از Caching استفاده کنید:

Caching یکی از ویژگی های منحصر به فرد ASP.NET است. تا آنجائیکه ممکن است از Caching استفاده کنید. استفاده از Caching  سبب می شود تا از تولید مجدد کد  HTML (Page Rendering) لازم برای یک صفحه تکراری جلوگیری شده و کاربر هم صفحات را خیلی سریعتر دریافت کند. در این روش میتوان متناسب با وابستگی به یک متغییر یا بازه زمانی خاص، کد تولید شده را جهت تازه سازی دوباره تولید کرد.

حالت Debug را غیرفعال کنید:

هنگامیکه کار برنامه نویسی شما تمام شده است و زمان استفاده واقعی از برنامه فرا رسیده است، فراموش نکنید که حالت Debug در کامپایل نهائی برنامه تان را غیرفعال نمائید. این کار را می توان از طریق نوار ابزار Standard انجام دهید.

ASP.NET

فشرده سازی HTTP :

فشرده سازی HTTPیعنی فشرده سازی  محتوا به  فرمت Gzip  یا جلوگیری از زیاد شدن حجم و ارسال با محتوایheaderها بعد از تایید شدن فشرده سازی. این کار زمان انتقال بین IIS  و browser را بالا میبرد.

دو نوع از فشرده سازی که در IISپشتیبانی میشود:

فشرده سازی ایستا(Static )

این فشرده سازی به وسیله ی مسیر دایرکتوری attributeمحتوا های ایستا را کش میکند.

بعد از اولین درخواست که فشرده شده است و پس از درخواست  از کپی کش فشرده شده استفاده میکند بنابراین زمان را کاهش میدهد و عملکرد برنامه را افزایش میدهد.

شما باید فقط یک محتوای ایستا را فشرده سازی کنید که یک بار هم به محتوای پویا تغییر نکند.

فشرده سازی پویا:

 برخلاف محتواهای ایستا، محتوای پویا  اغلب تغییر میکنند که در نتیجه قابلیت فشرده سازی را نه از طریق اضافه شدن بهcatchبلکه از طریق ذخیره سازی محتویات پشتیبانی میکند

0 0 دادگاه‌ها
امتیاز مطلب
اشتراک در
اطلاع از
guest
0 دادگاه‌ها
بازخورد (Feedback) های اینلاین
نمایش همه دیدگاه‌ها
0
با نوشتن دیدگاهتان ما را مهمان کنید.x
()
x