PDA

View Full Version : سوال: optimize پروژه



Hossenbor
چهارشنبه 23 بهمن 1387, 09:33 صبح
چگونه کدهای نوشته شده با سی شارپ را نهایت اوپتیمایز کرد
چگونه می توان memory usage پروژه را به حداقل رساند(در هنگام اجرای بر نامه):متفکر:

Mehdi Asgari
چهارشنبه 23 بهمن 1387, 11:52 صبح
بهینه سازی کاری نیست که بشه مثلا با یه سویچ کامپایلر انجام دادش یا این که با دونستن یه سری قوانین کد رو بشه بهینه کرد. اگه منظورت بهینه سازی معمولی ایه که خود کامپایلر انجام میده ، در صفحۀ پراپرتی پروژه ات سویچی برای این کار هست. کامپایلر های سی گزینه های بیشتری برای این کار در اختیارت قرار میدن.
باید اول از همه پروژه ات رو خوب بشناسی و گلوگاه ها و نقاط حساس برنامه رو که بیشترین درگیری با CPU یا I/O هست رو بشناسی + آگاهی از رانتایم و محیطت (سی شارپ + دات نت + ویندوز)
همچنین تعریف مشخصی از بهینه سازی و پرفورمنس داشته باشی. مسلما هدف کسی که بازی می نویسه با کسی که یه برنامۀ معمولی Line of Business ایجاد می کنه فرق داره.
در نهایت مهم ترین عامل برای بهینه کردن میزان مصرف حافظه یا استفادۀ بهینه از سی پی یو و .... اندازه گیریه (measurement). باید برنامه ات رو از طریق یه Profiler اجرا کنی تا ببینی در کدوم متدها/نقاط مصرف حافظه یا ... به peak می رسه.
انتظار شنیدن چند تا راهکار رو نداشته باش ، ولی با آشنا بودن هر چه بیشتر با محیطت (مخصوصا مدیریت حافظه در دات نت و GC و ...) و خوندن کتاب های برتر در اون زمینه و همچنین عمل به Best Practice های تدوین شده توسط مثلا تیم BCL یا CLR دردسر هات کمتر خواهند بود.

Amir Oveisi
چهارشنبه 23 بهمن 1387, 14:30 عصر
میتونین از ابزار Ngen.exe استفاده کنید. تا حدی به افزایش performance کمک میکنه (البته نه با بهینه سازی کدها)
نحوه کار و طرز استفاده ازش تو مقاله ای که لینکش تو امضام هست توضیح داده شده.

موفق باشید
jooje

Mehdi Asgari
یک شنبه 27 بهمن 1387, 17:08 عصر
نخواستم تاپیک جدید ایجاد کنم.
این هم مقاله ای برای بهینه سازی کد (ارزش خوندن داره):
http://www.shlomifish.org/philosophy/computers/optimizing-code-for-speed/

علیرضا مداح
یک شنبه 27 بهمن 1387, 17:26 عصر
سلام دوست عزیز،
بهره گیری از ابزار RedGate ANTS Profiler (http://www.red-gate.com/Products/ants_profiler/index.htm) را به شما پیشنهاد میکنم:



Identify performance bottlenecks within minutes
Fast and responsive – minimal impact on the execution of your program
Line-level timing – drill down to the specific lines of code responsible for performance inefficiencies
Profile any .NET application, including ASP.NET web applications
Optimize memory usage and locate memory leaks (Pro version)
http://www.red-gate.com/Products/ants_profiler/Popup_4/video_screenshot_indexpage.gif،/