مشاهده نسخه کامل
: سريعتر كردن حلقه for در vb.net
چجوري ميشه يه حلقه for سريعتر اجرا
بسته به محاسبات شما متفاوت است:
1-یک for ساده
2-یک Parallel For
3-چند For بخش بندی شده
4-For چند ریسمانی به صورت دستی
.
.
.
اما بهترین راه همواره بهینه سازی الگوریتم است.شما الگوریتم را بگو تا دوستان بهتر راهنمایی کنند.
موفق باشید.
بسته به محاسبات شما متفاوت است:
1-یک for ساده
2-یک Parallel For
3-چند For بخش بندی شده
4-For چند ریسمانی به صورت دستی
.
.
.
اما بهترین راه همواره بهینه سازی الگوریتم است.شما الگوریتم را بگو تا دوستان بهتر راهنمایی کنند.
موفق باشید.
4 تا for تو در تو براي رسم شكل گرافيكيه
یک for موازی انجام دستورات حلقه رابه صورت پیوسته انجام نمی دهد. در نتیجه شما در محاسبات و اموری که نتایج بعدی به نتایج قبلی وابسته است بسیار با دقت و هوشمندانه باید ازش استفاده کنید زیرا هر بخش از حلقه به صورت آسنکرون در هر Thread اجرا می گردد. سریع تر شدن عملیات حلقه کاملا وابسته به cpu و توانایی چند پردازشی آن است حتی ممکن است در بعضی مواقع کند تر نیز باشد.
لازم به ذکر است که این حلقه در .net4 به بعد کاربرد دارد.
نکته: همواره بررسی نمایید CPU چند هسته ای است. اگر یک هسته ای است از این ساختار استفاده نشود بهتر است.
نکته: بررسی خود من می گه که 64 بیت یا 32بیت در این قضیه تاثیر چندانی ندارد.(تست انجام شده ریاضی بوده و در صورت نیاز آنرا قرار خواهم داد.)
به این کد دقت کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سه حلقه تودرتو هست . از نتایج بدست آمده متوجه روند اجرای آن می شوید. با چند بار اجرا شمارشگر های حلقه در جاهای مختلف قرار می گیرند در نتیجه اگر کار محاسباتی است بسیار دقت کنید عناصری مانند Semaphore،Stack,Lazy و اموری نظیر WaitTask و... در برنامه نویسی موازی بسیار کمک می کنند.
اگر روش فوق عملیات شما را بهبود نمی بخشد. کمی حجم حلقه خود را تغییر دهید مثلا داخلیترین For را ساده بنویسید.
بسته به cpu نیز حجم Thread های موازی را کنترل کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.