افزايش سرعت ASP.NET چگونه انجام مي شود؟

تكنولوژي / اخبار تكنولوژي / دوربين مدار بسته

افزايش سرعت ASP.NET چگونه انجام مي شود؟

۵۲ بازديد

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

 

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

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

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

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

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

 

تبليغات درون متني/

اگر تمايل داريد براي شركت خود اقدام به طراحي سايت ارزان كنيد پيشنهاد مي كنم ابتدا مقالات مربوط به تفاوت طراحي سايت شركتي و  طراحي سايت فروشگاهي را مطالعه كنيد. من به شما پيشنهاد مي كنم خدمات طراحي سايت پيام آوا را براي اين كار نگاه كنيد. شركت پيام آوا بهترين و با كيفيت ترين خدمات طراحي سايت را در قالب طراحي سايت ارزان و مقرون به صرفه به شما ارائه مي كند.

تبليغات درون متني

استفاده صحيح و به موقع از كنترل هاي سرور:
اگرچه كنترلهاي سرور داراي قابليت هاي بسيار زياد و جالبي مي باشند اما اين قابليتها ناشي از اجراي آنها بر روي سرور است. از آنجا كه هر اجرائي بر روي سرور ايجاد بار اضافي در سرور مي كند لذا در استفاده از اين نوع كنترلها خساست و دقت بخرج دهيد و اگر جايي مي توانيد از كنترلهاي معمولي HTML استفاده نمائيد. به دليل اينكه همانگونه كه ما به لايه هاي پايين تر از زبان برنامه نويسي برويم سرعت كار بيشتر خواهد بود.

فشرده سازي فايل هاي css و js:
كاهش زمان بارگزاري صفحات از طريق فشرده سازي فايل هاي css و js بسيار مفيد است و اين كار را مي توانيد با استفاده از افزونه هاي ويژوال استوديو مانند: Web Essentials و همچنين وب سايت هاي آنلاين مانند: cssminifier.com و javascript-minifier.com انجام داد. (نمونه كار اجرا شده: darvishihotel.com)
از Stored Procedure استفاده كنيد:
اگر از بانك اطلاعاتي در برنامه تان استفاده مي كنيد، سعي كنيد كه حتما پرس و جوهاي (Query) خود را به روال هاي ذخيره شده (Stored procedure)  بسپاريد. از آنجائيكه اين روال ها براي مراجعه اول كامپايل شده و از آن پس جهت اجرا در اختيار مدير بانك اطلاعاتي (DBMS) قرار مي گيرد، نسبت به پرس و جوهاي معمولي درون برنامه اي بسيار كاراتر و سريعتر هستند. از طرفي با بهينه سازي خاصي كه براي گرداننده SQLServer (driver) در مجموعه دات نت شده است، سرعت اجراي روال هاي ذخيره شده نسبت به روش هاي معمولي OLEDB يا ODBC بيش از دو الي سه برابر مي باشد.

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

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

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

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

بهينه سازي و افزايش كارآيي و سرعت برنامه ها يasp.net جز موارد ضروري براي هر سايت طراحي شده با اين زبان است. با وجود كارا بودن asp.net و وجود آن جهت رفع نقص ها و كمبودهاي قبلي نياز است تا نكات زير را رعايت نماييد.

تبليغات ميان متني

سئو سايت براي موتورهاي جست و جو و همچنين  تبليغات گوگل ادوردز  از جمله مهمترين روش ها براي بيشتر ديده شدن سايت شما به حساب مي آيد. شركت پيام آوا خدمات طراحي سايت تهران و سئو را با مناسب ترين قيمت به شما ارائه مي دهد. بازاريابي و تبليغات به ركن اساسي جامعه امروز ما تبديل شده است.

تبليغات ميان متني

جهت بهينه سازي صفحات وب طراحي شده توسط asp.net مي توانيد كارهاي زير را انجام دهيد :

 Viewstate را غيرفعال كنيد :

 گزينه ي EnableViewStateرا براي هر كنترلي كه نيازي به viewstate ندارد ، برابر false قرار دهيد. درصورتيكه صفحه ي شما از postback استفاده نمي كند غيرفعالسازي اين خصوصيت مشكلي ايجاد نخواهد كرد.

 از Page.Ispostback در رويداد page_load استفاده كنيد :

 مطمئن شويد كه همه ي كدهاي موجود در page_load در بلاك if( Page.Ispostback) باشند در غير اينصورت با هر لودينگ صفحه كدها اجرا شده و منابع سرور را اشغال مي كنند.

 فراخواني ها براي سرويس هاي وب را همگام كنيد :

درصورتيكه از سرويس هاي وب در صفحه ي خود استفاده مي كنيد و براي لود شدن به زمان بالايي نياز دارند از فراخواني هاي همزمان براي اين سرويس ها استفاده كنيد البته اين روش سربار خاص خود را به دنبال خواهد داشت بنابراين فقط در مواقع ضروري از آن استفاده نماييد.

 

براي عمليات رشته اي از string builder استفاده كنيد.

در عمليات رشته اي طولاني از قابليت فوق به جاي عمليات دستي استفاده نماييد.

 مديريت exception ها را به شكلي خاص انجام دهيد :

 Exception ها را فقط در مواقع مورد نياز اجرا نماييد از آنجايي كه اجراي exception در كارايي سايت تان موثر خواهد بود از عبارتي مانند if not system.dbnull …. در مديريت آنها استفاده كنيد. اگر از exception استفاده كرديد با دستور finally حافظه اختصاص داده شده را آزاد كنيد و به Garbage Collector براي انجام اين كار تكيه نكنيد.

 

قابليت Page Buffering را در حالت on قرار دهيد :

اين قابليت را در حالت on قرار دهيد.در جاهايي كه صفحات وب بزرگي وجود دارند كاربر مي تواند در حين لود صفحه بخش هايي از آن را مشاهده نمايد.

 از caching استفاده نماييد :

تا حد ممكن داده ها را cache كنيد خصوصا داده هايي را كه مي دانيد تغييري نخواهند كرد و يا چندين بار مورد استفاده قرار مي گيرند.

حتي براي صفحاتي كه به طور مداوم تغيير پيدا نمي كنند نيز مي توانيد از قابليت page caching استفاده كنيد. كد زير مثالي در اين رابطه را نشان مي دهد :

<% @OutputCache Duration=”60″ VaryByParam=”none” %>

از فايل هاي script استفاده كنيد :

دستورات javascript را به طور مستقيم در صفحات قرار ندهيد و آنها را در فايلي با پسوند .js ذخيره و سپس فراخواني نماييد.مزيت اين كار اين است كه كدهاي يكسان به اشتراك گذاشته مي شوند و فايل حاوي كدهاي جاوا يك بار در كش مرورگر لود مي شود و نيازي به دانلود مجدد آن نخواهد بود.

ساير اسكريپت هاي جاواي غير قابل استفاده را حذف كنيد.

درصورتيكه از كنترل Tabstrip استفاده مي كنيد HTML هاي مخفي را پاك كنيد :

براي اين كار كافي است خصوصيت Autopostback of Tabstrip را در حالت on قرار دهيد. همچنين حصوصيت visibility همه ي پنل ها را به غير از پنل جاري با   false  مقدار دهي نماييد.

اين كار باعث مي شود هرزمان كه tab تغيير مي كند صفحه مجدد برگذاري شود.

 

زمانيكه از session استفاده نمي كنيد آن را غير فعال نماييد :

كد زير اين كار را انجام مي دهد :

<%@ Page EnableSessionState=”false” %>

اگر صفحه فقط session را مي خواند و چيزي در آن نمي نويسد آن را در حالت read قرار دهيد.

<%@ Page EnableSessionState=”ReadOnly” %>

 

Option Strict را در حالت on قرار دهيد .

اين قابليت باعث مي شود برخي تبديلات انواع (type convesion) مانند int به real كه به صورت مخفيانه انجام مي شوند حذف شوند.

از قابليت threading استفاده نماييد :

زمانيكه فصد دانلود حجم بالايي از داده ها راداريد از threading استفاده كنيد.از آنجاييكه اين قابليت ممكن است باعث ايجاد سربار شود در استفاده از آن بايد دقت لازم را به خرج دهيد. از thread هاي  long term كمترين استفاده را داشته باشيد و تا حد ممكن بين آنها سوئيچ ننماييد.

از توابع chunky استفاده كنيد :

فراخواني chunky تابعي است كه چندين وظيفه را انجام مي دهد. طراحي برنامه ي شما بايستي به گونه اي باشد كه به فراخواني هاي كوچك و مداوم كه داراي سربار هستند تكيه ننمايد .

از ajax استفاده كنيد:

فايل هايي كه لود ينگ آنها به صورت مداوم انجام مي شود را با كد ajax طراحي كنيد.

 از كلاس SqlDataReader استفاده كنيد :

اين كلاس روشي را فراهم مي آورد تا جريان هاي داده اي را كه از sqlserver بازيابي مي شوند  در آن خوانده شوند.اگر تنها نياز به خواندن داده ها داريد،  كلاس SqlDataReader كارايي بيشتري را در مقايسه با كلاس dataset ارائه مي دهد.چرا كه از پروتكل Tabular Data Stream براي خواند داده ها از اتصالات ديتابيس استفاده مي كند.

 از Stored Procedures استفاده كنيد :

اين رويه ها سريع تر از دستورات sql قراخواني مي شوند چرا كه به صورت precompile  مي باشند.

 هنگام استفاده از سرويس هاي وب بيشتر دقت نماييد :

اين نوع سرويس ها به دليل دارا بودن حجم بالايي از داده ها به حافظه بالايي نياز دارند ، فقط در مواقع ضروري از آنها استفاده نماييد.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

تبليغات ميان متني

درب شيشه اي  يكي از ملزومات دكوراسيون لوكس و مدرن ساختمان هاي امروز به حساب مي آيند. قيمت درب شيشه اي را در سايت قائم الكتريك مشاهده كنيد. همچنين درب ورودي ساختمان ها نيز براي حفظ امنيت عبور و مرور نيازمند تجهيزات راهبند است. قيمت راهبند  را از قائم الكترونيك به راحتي دريافت كنيدتيم نكته عمومي و عاميانه اين است كه در شيشه اي يا همان درب شيشه اي به درب اتوماتيك شيشه اي اشاره دارند. در شيشه اي در انواع مختلف را از قائم الكترونيك بخواهيد.

تبليغات ميان متني

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در مونوبلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.