PDA

View Full Version : 50 راه جهت اجتناب, یافتن و رفع موضوعات مربوط به کارایی وب اپلیکیشن های ASP.NET



amirjalili
سه شنبه 17 بهمن 1391, 12:08 عصر
برای احیا دوباره بخش ASP.NET و نجات دادنش از مرگ حاصل از تایپیک هایی که بیشتر آنها سوالات تکراری و اغلب نامربوط به ASP.NET هستند تصمیم گرفتم ترجمه کتابی رو که خیلی داغ هست و تازه منتشر شده رو براتون بگذارم. این کتاب شامل 50 راهکار ساده و خلاصه در مورد کارایی یا Performance هست. پس شروع میکنیم. من هر روز چند تا از راهکار ها و موضوعات مطرح شده در کتاب رو با شماره موضوع طبق کتاب میگذارم.
لطفا در این تایپیک چیزی ننویسید
---------------------------------------------

1

Caching آخرین راهکار است :


پروژه ای که از چندین سطح cache استفاده میکند اغلب نشان از یک کج فهمی در باره اینکه چرا caching نیاز است, دارد.
caching مترادف با کارایی نیست. کد شما باید قبلا کارا یا موثر شده باشد. caching تنها باید به عنوان آخرین راهکار پس از اینکه شما همه بهینه سازی های ممکن را روی کد انجام داده باشید, مورد استفاده قرار گیرد.


2

View Engine های بلااستفاده را حذف کنید:

اگر شما یک توسعه دهنده Asp.net MVC هستید, شما ممکن است ندانید که Asp.net هنوز View Engine ها را برای هم Razor و هم Webform ها به صورت پیش فرض لود میکند. این میتواند سبب مشکلات کارایی شود زیرا MVC بصورت نرمال ابتدا به View مربوط به WebForm ها مراجعه میکند و اگر نتوانست چیزی بیابد سپس روی view های Razor سوویچ میکند.
(View Engine مسئول ساخت HTML از View است)
شما میتوانید به سرعت و به آسانی این مشکل کارایی را توسط اضافه کردن 2 خط کد زیر به فایل Global.asax در Application_Start , از بین ببرید و از View Engine مربوط به وب فرم ها خداحافظی کنید.



ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(
newRazorViewEngine());

3

از PDB های مایکروسافت برای Debug یا مشاهده اطلاعات کتابخانه ها یا اسمبلی های خارجی استفاده کنید. (PDB یا Program Database فایل هایی هستند که اطلاعات دیباگ شما یا اطلاعات خطی که الان در حال اجرا شدن هست در اون ذخیره میشه) :

برای دیباگ به صورت با دقت تر یا مشاهده اطلاعات و توضیحات اسمبلی ها یا کتابخانه ها شما نیاز به فایل های PDB که هر یک از dll ها را همراهی میکنند دارید. این فایل ها به دیباگر یا پروفایلر اجازه دسترسی به اطلاعات از قبیل نام متد, شماره خط اجرا, یا اطلاعات دیگر را میدهند. یک چیزی که بویژه خیلی افتضاح است دیباگ کردن و پروفایل کردن اسمبلی های محلی دات نت بدون وجود چنین اطلاعاتی میباشد. خوشبختانه راهکاری برای این اشکال مهم وجود دارد. با شناخت کمی از ویژوال استدیو 2010 یا 2012 شما میتوانید به Microsoft Symbol Servers وصل شوید و بسیاری از نمادهای دیباگ کردن را برای اسمبلی ها و کتابخانه ها بدست آورید. برای این کار به مسیر
TOOLS--> OPTION--> DEBUGING-->SYMBOLS بروید و گزینه Microsoft Symbol Servers را به عنوان منبع نماد هایتان انتخاب کنید.
گرفتن نماد ها از مایکروسافت در هر زمانی که شما دیباگ یا پروفایل میکنید کند و آزار دهنده است. بنابراین مطمئن باشید که دایرکتوری برای Cache symbols در پایین همین بخش مشخص کرده اید.
آن باعث میشود که یک کپی محلی از فایل های PDB گرفته شود و همواره برای بروزرسانی آن اقدام میکند.

amirjalili
چهارشنبه 18 بهمن 1391, 13:25 عصر
4
فشرده سازی محتویات

مطمئن باشید که HTTP Compression روی وب سرور شما فعال شده باشد. برخی محتویات بویژه HTML قابلیت چشمگیری برای فشرده سازی دارند و این فشرده سازی برای بهبود کارایی بسیار مهم است.
(برای اطلاعات بیشتر به اینجا (http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/502ef631-3695-4616-b268-cbe7cf1351ce.mspx?mfr=true)مراجعه کنید)



5

تنظیم ویژگی CachControlMaxAge :
همیشه صفت CachControlMaxAge در وب کانفیگ را برای صفحات ایستا به بیشترین حالتش تنظیم کنید( مقدار 1 سال خوب است). این صفت به مرورگر شما میگوید که صفحه خاصی از وب سایت شما تا مدتی مشخص تغییر نخواهد کرد. cachecontrolmaxage همچنین در پهنای باند شما که دارید بابت ان پول میدهید صرفه جویی میکند.


6
استفاده از outputcach در MVC

از نشانه گذاری OutPutCach در کنترلر MVC استفاده کنید.[annotation] . اگر سرور بتواند از طریق مراجعه به حافظه RAM به جای مراجعه به هارددیسک یا دیتابیس خدمت رسانی کند به موفقیت بزرگی رسیده اید. پس این مورد را هرگز از یاد نبرید

simorgh-hossein
چهارشنبه 18 بهمن 1391, 20:37 عصر
ممنون از اطلاعات خوبت ! :تشویق:
ولی 44 تای بقیه کجان ؟؟؟ :لبخند: