PDA

View Full Version : سوال: بالا بردن سرعت برنامه



Hassan2500
دوشنبه 30 مرداد 1391, 21:22 عصر
سلام

من یه برنامه نوشتم که کدهای اون زیاده و برنامه ام یه کمی کند شده آیا راهی وجود داره سرعت برنامه ام رو بالا ببرم

the king
دوشنبه 30 مرداد 1391, 22:16 عصر
سلام

من یه برنامه نوشتم که کدهای اون زیاده و برنامه ام یه کمی کند شده آیا راهی وجود داره سرعت برنامه ام رو بالا ببرم

سرعت ویرایشگر ویژوال استدیو یا سرعت اجرای پروژه؟ سرعت ویرایشگر رو نمیشه چندان بالا برد، وقتی پروژه حجیم میشه کند شدن
ویژوال استدیو و بیشتر شدن زمان لازم برای کامپایل و اجرا شدن کد طبیعیه. اما سرعت نمایش فرم ها و عملیاتی که داخل فرم ها
انجام میشه بستگی به الگوریتمی داره که نوشتید. بعضی روش ها برای افزایش سرعت اجرا روتین و ساده اند، فرضا :

اگر کاری در کد تون چند بار انجام میشه در حالی که یکبار انجام شدنش کفایت می کنه، جلوی اجرا شدن مکرر اش رو بگیرید.
اگر نتیجه محاسبه ای چند جا استفاده میشه، یکبار در یک متغیر نتیجه اش رو ذخیره کنید و دفعات بعد فقط از اون مقدار
متغیر استفاده کنید.
اگر از الگوریتم های کندی مثل مرتب سازی حبابی استفاده می کنید با الگوریتم های سریعتری مثل مرتب سازی سریع (Quick Sort)
جایگزین اش کنید.

setroyd
سه شنبه 31 مرداد 1391, 13:30 عصر
سعی کنید حتما متغییری که مثلا قراره 200 تا توش بریزیت الکی از integer تعریف نکنید و از byte تغریف کنید و همینطور تا اخر همین باعث میشه برنامه سرعتش کمی قابل توجه باشه و مهم تر از این سعی کنید در بعضی مواقع از api استفاده کنید که برنامه به سرعت دلخواهتون برسه مثلا برای add کردن تو یه لیست باکس سعی کنید از api استفاده کنید و.........

m.4.r.m
سه شنبه 31 مرداد 1391, 14:08 عصر
چیزی عادی است دوست عزیزمون از نظر متغیر سرعت اجرا فرقی نداره چون الان سیستم ها بالا هستن مشکل حافظه و اینا نداریم ، بهترین راه ممکن برای کاهش سرعت کم کردن کدهات می تونه باشه سعی کن الکی از کدهای اضافی استفاده نکنی مثلا در موقع فراخوانی پایگاه داده در هر فرم فراخوانی استباهه شما یه Module درست کن دااخل ماژول دستور فراخوانی پایگاه داده رو دو خط بنویس و در دفعات بعد در هر فرم فقط صدا بکن دستور رو و بقیه کار ها همچنین ، از if ها و دستوراتی گیج کننده زیاد استفاده نکن مثلا به جای اینکه بنویسی

If Text1.Text <> "" Then
MsgBox "Ok"
End If

میتونی بنویسی
If Text1.Text <> "" Then: MsgBox "Ok"

و ....

مهرداد صفا
چهارشنبه 01 شهریور 1391, 01:21 صبح
سلام

چیزی عادی است دوست عزیزمون از نظر متغیر سرعت اجرا فرقی نداره چون الان سیستم ها بالا هستن مشکل حافظه و اینا نداریم ،
هر چند سیستمها قوی باشند، برنامه نویس مخصوصا در چنین شرایطی باید در صورت امکان مواظب میزان حافظه مصرفی باشد. میزان حافظه اگر مهمترین عامل در سرعت نباشد بی تاثیر هم نیست؛ فرض کنید یک آرایه تعریف کردیم و میخواهیم مقادیر عددی را در آن ذخیره کنیم
dim number(1000,1000)
خوب حالا ما یک ملیون متغیر 16 بایتی داریم که فقط اگر کد را به صورت زیر تغییر دهیم این مقدار به یک هشتم میرسد
dim number(1000,1000) as integer
انتقال و نوشتن 2 MB سریعتر است یا 16 MB? حالا از این دست موارد را در مقیاس بالا و متعدد در نظر بگیرید!!

بهترین راه ممکن برای کاهش سرعت کم کردن کدهات می تونه باشه
البته ولی نه همیشه.

سعی کن الکی از کدهای اضافی استفاده نکنی مثلا در موقع فراخوانی پایگاه داده در هر فرم فراخوانی استباهه شما یه Module درست کن دااخل ماژول دستور فراخوانی پایگاه داده رو دو خط بنویس و در دفعات بعد در هر فرم فقط صدا بکن دستور رو و بقیه کار هاهمینطوره.

همچنین ، از if ها و دستوراتی گیج کننده زیاد استفاده
نکن
مثلا به جای اینکه بنویسی

If Text1.Text <> "" Then
MsgBox "Ok"
End If

میتونی بنویسی
If Text1.Text <> "" Then: MsgBox "Ok"
استثنائا در این مورد هیچ تفاوتی از نظر compiler وجود ندارد.

سلام

من یه برنامه نوشتم که کدهای اون زیاده و برنامه ام یه کمی کند شده آیا راهی وجود داره سرعت برنامه ام رو بالا ببرم
اگر بیشتر در مورد برنامه توضیح میدادید دوستان میتوانستند نظرات مفیدتری برای بهینه کردن کدها داشته باشند به هر حال همونطور که دوستان هم گفتند تا میتوانید محاسبات را کوتاه تر کنید و سعی کنید مواردی را که مکررا استفاده میکنید در متغیر نگهدارید.
مواظب کدهایی که در حلقه ها مینویسید باشید و کدهای غیر ضروری را بیرون حلقه بنویسید.
ارسال پارامترها به صورت ByRef مخصوصا در آرایه ها باعث کاهش میزان حافظه میشود.
اشیایی که در برنامه استفاده میکنید مخصوصا wrapper object ها و اشیایی از قبیل MediaPlayer, excel.Application, Directx, data engin و ... ها را بعد از استفاده نابود کنید تا فضای حافظه آزاد شود.
به timer ها و نحوه عملکرد کدهایی که در آنها مینویسید خیلی دقت کنید.
به دستوراتی که فشار زیادی برای پردازنده دارند مثل توابع رشته ای دقت کنید و سعی کنید از آنها مخصوصا در حلقه ها کمتر استفاده کنید.
گاهی نوشتن یک تابع بهتر از فراخوانی آ یا استفاده از یک Commponent است! چون ممکن است تابع یا کامپوننت مورد نظر بهینه نباشد و یا کاری اضافه بر آنچه مورد نظر شماست هم انجام دهد مثلا به جای استفاده از یک MediaPlayer برای پخش صدا از یک تابع PlaySound استفاده کنید یا به جای یک shape از متودهای گرافیکی استفاده کنید.
و...