تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 4 از 4

نام تاپيک: سريعتر كردن حلقه for در vb.net

  1. #1
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2007
    پست ها
    445

    پيش فرض سريعتر كردن حلقه for در vb.net

    چجوري ميشه يه حلقه for سريعتر اجرا

  2. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    بسته به محاسبات شما متفاوت است:
    1-یک for ساده
    2-یک Parallel For
    3-چند For بخش بندی شده
    4-For چند ریسمانی به صورت دستی
    .
    .
    .
    اما بهترین راه همواره بهینه سازی الگوریتم است.شما الگوریتم را بگو تا دوستان بهتر راهنمایی کنند.

    موفق باشید.

  3. 2 کاربر از Msba بخاطر این مطلب مفید تشکر کرده اند


  4. #3
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2007
    پست ها
    445

    پيش فرض

    بسته به محاسبات شما متفاوت است:
    1-یک for ساده
    2-یک Parallel For
    3-چند For بخش بندی شده
    4-For چند ریسمانی به صورت دستی
    .
    .
    .
    اما بهترین راه همواره بهینه سازی الگوریتم است.شما الگوریتم را بگو تا دوستان بهتر راهنمایی کنند.

    موفق باشید.
    4 تا for تو در تو براي رسم شكل گرافيكيه

  5. #4
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    یک for موازی انجام دستورات حلقه رابه صورت پیوسته انجام نمی دهد. در نتیجه شما در محاسبات و اموری که نتایج بعدی به نتایج قبلی وابسته است بسیار با دقت و هوشمندانه باید ازش استفاده کنید زیرا هر بخش از حلقه به صورت آسنکرون در هر Thread اجرا می گردد. سریع تر شدن عملیات حلقه کاملا وابسته به cpu و توانایی چند پردازشی آن است حتی ممکن است در بعضی مواقع کند تر نیز باشد.
    لازم به ذکر است که این حلقه در .net4 به بعد کاربرد دارد.
    نکته: همواره بررسی نمایید CPU چند هسته ای است. اگر یک هسته ای است از این ساختار استفاده نشود بهتر است.
    نکته: بررسی خود من می گه که 64 بیت یا 32بیت در این قضیه تاثیر چندانی ندارد.(تست انجام شده ریاضی بوده و در صورت نیاز آنرا قرار خواهم داد.)
    به این کد دقت کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    سه حلقه تودرتو هست . از نتایج بدست آمده متوجه روند اجرای آن می شوید. با چند بار اجرا شمارشگر های حلقه در جاهای مختلف قرار می گیرند در نتیجه اگر کار محاسباتی است بسیار دقت کنید عناصری مانند Semaphore،Stack,Lazy و اموری نظیر WaitTask و... در برنامه نویسی موازی بسیار کمک می کنند.

    اگر روش فوق عملیات شما را بهبود نمی بخشد. کمی حجم حلقه خود را تغییر دهید مثلا داخلیترین For را ساده بنویسید.
    بسته به cpu نیز حجم Thread های موازی را کنترل کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    موفق باشید.

  6. 3 کاربر از Msba بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •