برنامه ام کند شده به خاطر کنترلهای زیاد و ...
آیا راهی برای افزایش سرعت وجود داره
اگر فضای cpu یا رم رو بیشتر اشغال کنیم تغییری تو سرعت ایحاد می شه؟
ممنون
برنامه ام کند شده به خاطر کنترلهای زیاد و ...
آیا راهی برای افزایش سرعت وجود داره
اگر فضای cpu یا رم رو بیشتر اشغال کنیم تغییری تو سرعت ایحاد می شه؟
ممنون
اشغال RAM رو توصیه نمی کنم، اگر thread دارید priority اون رو below normal بکنید، در کار با فایلها حداقل دفعات نوشتن و خواندن به همراه بیشترین مقدار نوشتن و خواندن رو انجام بدید، از for each استفاده نکنید، بیشتر از ساختارهای مشابه با ++C استفاده کنید و از استفاده حلقه های بی خودی بپرهیزید، از نوشتن توابع تودر تو و یا بازگشتی خودداری کنید.
من یک پروژه دارم
اینا همه را هم که گفتید استفاده کردم حالا بیام اینا همه را چیکار کنم یعنی نمی شه کاری کرد چون پروژه به حالت تعلیق در می یاد
اما این thread که گفتین چیه؟؟؟
thread یا به اصطلاح "نخ" پردازشهای جداگانه در برنامه هستند که میتوانند همراه هم به صورت اشتراکی و یا مستقل از هم کارهای برنامه را انجام دهند و در آنها میتوان اولویت کارها، تعیین انجام کار بر روی هر کدام از هسته های پردازنده و کارهایی مثل شیا گرایی های بسیار بزرگ رو انجام داد. مشخصه که از thread استفاده ای نکردید، اما اون for each ها پوست از سر CPU میکنه، ممکنه از نظر نوشتاری برنامه تون خوانا بشه ولی بسیار کند و ذجر آور میشه، من پارسال برنامه ای نوشتم که نیاز به بیش از 1000 thread داشت و روی سیستم های 4 هسته ای کار میکرد، اوایل با همون for each رفتم جلو و با 3 4 تا thread بیشتر کار نمی کردم، اما کند بود و وقتی که رفتم سراغ قسمت اصلی دیدم برنامه اصلا کار نمیکنه، با کلی گشتن تو سایتهای برنامه نویسی ایرادات رو پیدا کردم و یکی از بزرگترینشون همین for each بود، کارهای روی تصاویر هم میکردم که اونها رو هم اصلاح کردم و بسیار سرعت برنامه بالا رفت. اگه درست اصلاحش کنید مطمئن باشید بیش از 10 برابر سریع تر میشه.
تردها برای انجام کارهای موازی استفاده میشن و اگر توی برنامه خودتون محاسبات وقت گیر زیادی دارین بهتر هست حتمن از اونها استفاده کنید برای یادگیری تردها هم به این آدرس برین موفق باشید./
http://www.albahari.com/threading/