PDA

View Full Version : سوال: چه راههایی وجود داره برای افزایش سرعت برنامه



sadaf_
پنج شنبه 08 اردیبهشت 1390, 13:53 عصر
برنامه ام کند شده به خاطر کنترلهای زیاد و ...
آیا راهی برای افزایش سرعت وجود داره
اگر فضای cpu یا رم رو بیشتر اشغال کنیم تغییری تو سرعت ایحاد می شه؟

ممنون

ژوپیتر
پنج شنبه 08 اردیبهشت 1390, 14:01 عصر
اشغال RAM رو توصیه نمی کنم، اگر thread دارید priority اون رو below normal بکنید، در کار با فایلها حداقل دفعات نوشتن و خواندن به همراه بیشترین مقدار نوشتن و خواندن رو انجام بدید، از for each استفاده نکنید، بیشتر از ساختارهای مشابه با ++C استفاده کنید و از استفاده حلقه های بی خودی بپرهیزید، از نوشتن توابع تودر تو و یا بازگشتی خودداری کنید.

sadaf_
پنج شنبه 08 اردیبهشت 1390, 14:19 عصر
من یک پروژه دارم
اینا همه را هم که گفتید استفاده کردم حالا بیام اینا همه را چیکار کنم یعنی نمی شه کاری کرد چون پروژه به حالت تعلیق در می یاد
اما این thread که گفتین چیه؟؟؟

ژوپیتر
پنج شنبه 08 اردیبهشت 1390, 14:37 عصر
thread یا به اصطلاح "نخ" پردازشهای جداگانه در برنامه هستند که میتوانند همراه هم به صورت اشتراکی و یا مستقل از هم کارهای برنامه را انجام دهند و در آنها میتوان اولویت کارها، تعیین انجام کار بر روی هر کدام از هسته های پردازنده و کارهایی مثل شیا گرایی های بسیار بزرگ رو انجام داد. مشخصه که از thread استفاده ای نکردید، اما اون for each ها پوست از سر CPU میکنه، ممکنه از نظر نوشتاری برنامه تون خوانا بشه ولی بسیار کند و ذجر آور میشه، من پارسال برنامه ای نوشتم که نیاز به بیش از 1000 thread داشت و روی سیستم های 4 هسته ای کار میکرد، اوایل با همون for each رفتم جلو و با 3 4 تا thread بیشتر کار نمی کردم، اما کند بود و وقتی که رفتم سراغ قسمت اصلی دیدم برنامه اصلا کار نمیکنه، با کلی گشتن تو سایتهای برنامه نویسی ایرادات رو پیدا کردم و یکی از بزرگترینشون همین for each بود، کارهای روی تصاویر هم میکردم که اونها رو هم اصلاح کردم و بسیار سرعت برنامه بالا رفت. اگه درست اصلاحش کنید مطمئن باشید بیش از 10 برابر سریع تر میشه.

m.soleimani
پنج شنبه 08 اردیبهشت 1390, 14:40 عصر
من یک پروژه دارم
اینا همه را هم که گفتید استفاده کردم حالا بیام اینا همه را چیکار کنم یعنی نمی شه کاری کرد چون پروژه به حالت تعلیق در می یاد
اما این thread که گفتین چیه؟؟؟

تردها برای انجام کارهای موازی استفاده می‌شن و اگر توی برنامه خودتون محاسبات وقت گیر زیادی دارین بهتر هست حتمن از اون‌ها استفاده کنید برای یادگیری تردها هم به این آدرس برین موفق باشید./

http://www.albahari.com/threading/