PDA

View Full Version : افزایش سرعت و کارایی برنامه



javad_r_85
پنج شنبه 29 اردیبهشت 1390, 11:57 صبح
در میان این همه تایپیک واقعا جای چنین تایپیکی خالی هست .
از دوستان تقاضا دارم تا تجربیات خودشون را بیان کنند تا برنامه هایی که می نویسیم کارایی و سرعت بهتری داشته باشد من که خودم بعضی وقتا چن تا فرم که ایجاد می کنم و داده ها را از جداول واکشی می کنم از سرعت کم برنامه خسته شدم لذا این تایپیک را ایجاد کردم تا از تجربیات دوستان استفاده کنم .در زیر چند نمونه که خودم به وضوح مشاهده کردم را ذکر می کنم.::

1-استفاده از for به جای foreach
2-استفاده از generic ها به جای collection
3- استفاده از Entity Framwork به جای ADO.NET
4- استفاده از Multi Therding
5-کاهش لود صفحاتی که در آنها جدول وجود دارد و نیاز به واکشی داده ها از جداول می باشد
6-استفاده از paging برای جداول
7-استفاده نکردن از SELECT * FROM TABLENAEM به جای آن نام فیلدهای ضروری را بنویسیم
8-استفاده از ویو و روالها در برنامه
9-استفاده نکردن از کامپوننت
10-کد نویسی به جای استفاده از ویزارد

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

javad_r_85
پنج شنبه 29 اردیبهشت 1390, 12:28 عصر
http://dotnet.sys-con.com/node/46342
http://msdn.microsoft.com/en-us/library/ms173196.aspx

S_VB.max
پنج شنبه 29 اردیبهشت 1390, 12:54 عصر
6-استفاده از paging برای جداول


سلام
میشه در مورد استفاده paging برای جداول یکم توضیح بدین
اصلا این paging چی هست؟

javad_r_85
پنج شنبه 29 اردیبهشت 1390, 17:17 عصر
Paging مانند برنامه های تحت وب مثلا داده ها را 10 تا 10 تا واکشی کنیم و در صفحات جداگانه نمایش دهیم

javad_r_85
پنج شنبه 29 اردیبهشت 1390, 17:19 عصر
دوستان من برنامه های با سی شارپ دیدم که واقعا از سرعت اونا تعجب کردم و واقعا دوست دارم بدونم اونها چطوری چنین کاری را انجام می دن .از دوستان اگر کسی نظری داره لطفا بیان کند تا ما استفاده کنیم

javad_r_85
پنج شنبه 29 اردیبهشت 1390, 18:00 عصر
ابزارهای جهت انالیز برنامه



Yourkit (http://www.yourkit.com/)[^ (http://www.yourkit.com/)]
JetBrains (http://www.jetbrains.com/profiler/)[^ (http://www.jetbrains.com/profiler/)]
RedGate ANTS (http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/)[^ (http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/)]
EQUATEC (http://www.eqatec.com/Profiler/)[^ (http://www.eqatec.com/Profiler/)]

haghft
پنج شنبه 29 اردیبهشت 1390, 19:52 عصر
3- استفاده از Entity Framwork به جای ADO.NET
منظورتون از این چیه؟چون entity هم برای همون ADO.NET هستش
به این لینک MSDN نگاه کنید
The ADO.NET Entity Framework Overview (http://msdn.microsoft.com/en-us/library/aa697427%28v=vs.80%29.aspx)

exlord
پنج شنبه 29 اردیبهشت 1390, 20:09 عصر
استفاده از Entity Framwork به جای ADO.NET
با این کاملا مخالفم ... EF باعث افزایش سرعت نوشتن برنامه میشه نه سرعت اجرای اون .. و EF خودش از ADO.Net استفاده میکنه ...

javad_r_85
پنج شنبه 29 اردیبهشت 1390, 22:45 عصر
نمی دونم چرا دوست دارن بعضی های بحث را به حاشه بکشن اولا من تجربیاتم را گفتم و نمی خوام بر درستی آنها پافشار کنم و یا اینکه تحمیل کنم. بعد اینکه شما تجربیات خودتون را ذکر کنیداگر به نظر شما ADO بهتره پس همینطوره دیگه جای کل کل نیست بهتره به موارد دیگر اشاره کنید..

من خودم امروز به نتیجه ای که رسیدم اونم اینکه در زمان اجرای برنامه در لحظه اول کانکشن را یک باز باز کنید بعد ببندید این باعث می شه که از این جا به بعد ار رم خونده شود و سرعت لود اطلاعات در فرم های دیگر افزایش پیدا کند من خودم تست کردم و اگر زمان لود فرمی که اطلاعا ت را می خوند و درون 3 کمبو باکس قرار می داد برابر 600 میلی ثانیه بود با این کار به 350-400 میلی ثانیه کاهش یافت

haghft
جمعه 30 اردیبهشت 1390, 09:08 صبح
من خودم امتحان کردم استفاده از LINQ در سرعت خیلی تاثیر داره برای همین بهتره از LINQ to Entity استفاده کنید.

S_VB.max
سه شنبه 03 خرداد 1390, 11:49 صبح
من تو برنامه تمام متغیرهای عمومی (که تعدادشون خیلی زیاده) را گذاشتم توی یک کلاس
به این صورت اونا را تعریف کردم :
public static int iduser = 0;

می خوام بدونم این جور کاری رو سرعت برنامه تاثیر می گذاره؟ و آیا روش درستی هست