PDA

View Full Version : سوال: سرعت در C#.NET



keivan mousavi
سه شنبه 27 مرداد 1388, 12:50 عصر
با سلام خدمت تمام اساتید
چند وقت پیش یک برنامه ای رو در یک شبکه راه انداختم ولی سرعت مناسبی در شبکه نداشت و برنامه به کندی اجرا میشد این در وهله اول نمایان نمیشد ولی هرچه از سن برنامه میگذشت و ورودی بیشتری به برنامه وارد میشد از سرعت برنامه کم میشد

حالا سوال من اینه که چه عواملی در سرعت یک برنامه تاثیر دارد؟؟؟

Evil 69
سه شنبه 27 مرداد 1388, 14:55 عصر
عوامل زیادی می تونن توی سرعت یک برنامه تاثیر بذارن مثلا الگوریتم برنامه می تونه تاثیر گذار باشه برای مثال وقتی ما برای جست و جو ار روش خطی استفاده می کنیم برای داده های کم خوب جواب می ده و لی اگر داده ها زیاد بشن و داده مورد نظر در بدترین حالت باشه دیگه این الگوریتم جواب ئ نیست و سرعت برنامه رو می گیره همین طور از عوامل دیگه میشه از انتخاب ایندکس در بانک های اطلاعاتی نام برد گاهی اوقات ما کلید هایی رو تعریف می کنیم که به نظر خوب میان ودر اوایل کار هم خوبن و سرعت مناسبی در پیدا کردن داده موزد نظر دارن اما وقتی داده ا زیاد میشن دیگه با سرعت خوبی عمل نمی کنن . من اگر جای شما بودم اول می رفتم کد برنامم رو می خوندم و نگاه می کردم که کجا ها رو می شه بهینه کرد که با دستورالمل های کمتر کار ها رو انجام بده و ...

Armin060
چهارشنبه 28 مرداد 1388, 05:26 صبح
گمونم تاثير گذار ترين عامل روی سرعت برنامه الگوريتم اون باشه. من خودم يه بار داشتم يه برنامه می نوشتم كه الگوريتم انجام يه كاريش رو يه تيكش رو خيلی بد نوشته بودم و سرعت برنامه خيلی خيلی كم بود، و بعد رفتم تصحيح كردم، به خاطر همون يه تيكه كه بهترش كردم تقريبا سرعت انجام اون عمليات 20 برابر و شايد هم بيشتر شد.

Open-Source
چهارشنبه 28 مرداد 1388, 10:42 صبح
اگر از بانک اطلاعاتی هم استفاده میکنی خیلی باید به ساختارش دقت کنی.
بانکت نباید هیچ گونه آنومالی در هیچ سطحی داشته باشه.

اگه یه بانک آنومالی داشته باشه برنامه توی ویندوز هم سرعتش با افزایش داده کم میشه چه برسه به شبکه.

Nima NT
چهارشنبه 28 مرداد 1388, 10:52 صبح
میشه کمی در مورد آنومال توضیح بدید ؟

keivan mousavi
چهارشنبه 28 مرداد 1388, 11:26 صبح
دوستان مشکل از اینجاست که برنامه فقط در قسمتهایی که data زیادی وارد شده کند شده
این یک برنامه انبار و فروش هستش
برنامه انبار هم که ی برنامه شلوغی هستش که هر روز بیش از 1000 رکورد وارد میشه
من در این برنامه خیلی از نکاتو رعایت کردم
استفاده درست از متغیرها
نوع صحیح کلاس بندی و کلاً شئ گرایی
و راهایی که توی کتابهای مختلف در مورد سرعت برنامه خونده بودم

ولی انگار همه اینها در حالت تئوری بوده و در عملی تاثیر شگرفی نداره

SabaSabouhi
چهارشنبه 28 مرداد 1388, 13:15 عصر
دوستان مشکل از اینجاست که برنامه فقط در قسمتهایی که data زیادی وارد شده کند شده
ولی انگار همه اینها در حالت تئوری بوده و در عملی تاثیر شگرفی نداره

با سلام
دوست عزیز، همه‌ی این تئوری‌ها مهم هستن، اما ممکنه برخی از اون‌ها دلیل کندی شما نباشن.
در صورتی که تمام این تئوری‌ها رو رعایت کنید مشکل نخواهید داشت، اما وقتی رعایت نکردین کمی مشکله که دنبال مورد مشکل‌زا بگردین.
مثلاً تو Queryهای سنگین تا حد امکان از OuterJoin اجتناب کنید چون بسیار سرعت رو کند می‌کنن ( تو یک Query با بیش از 10 Join و تعداد سطر زیاد کاملاً محسوس خواهد بود)

اما اگه Query شما شامل یک یا دو تا Join باشه این مساله خیلی اهمیت نداره.

یک‌بار گزارشی تهیه کردم از تمام اطلاعات برای تمام مشتریان یک شرکت که خروجی باید در یک فایل Excel قرار می‌گرفت. یک Query نوشتم، نتیجه این شد که گزارش حدود یک ساعت طول می‌کشید.
آن را خرد کردم، بجای یک Query، هفت Query ایجاد کردم که غیر از اولی بقیه برای پر کردن فایل Excel باید دنبال سطر مورد نظر هم می‌گشتم. نتیجه این شد که یک ساعت به حدود 20 دقیقه رسید.

پس توصیه دوستان رو جدی بگیرید هر چند که به نظر فقط تئوری بیایند.

صبا صبوحی