نمایش نتایج 1 تا 40 از 108

نام تاپیک: وی بی .نت یا ..... ؟

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    نقل قول: وی بی .نت یا ..... ؟

    نقل قول نوشته شده توسط hossein-khoshseyar مشاهده تاپیک
    می خوام بدونم کدوم یک از 2 کد زیر سریعتره و چرا

    dim m as int16
    for m=1 to 100
    .
    .
    next


    یا

    for m as int16=1 to100
    .
    .
    next
    هیچ فرقی با هم ندارن .

  2. #2
    کاربر دائمی آواتار hossein-khoshseyar
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    532

    نقل قول: وی بی .نت یا ..... ؟

    نقل قول نوشته شده توسط pirmard مشاهده تاپیک
    هیچ فرقی با هم ندارن .
    دوست عزیز اگه فرقی با هم نیم کنن پس چرا می گی که من اشتباه کردم
    من همین کد رو توی یه فور دیگه نوشته بودم که با این حرف شما نباید مشکلی داشته باشه

  3. #3
    کاربر دائمی آواتار hossein-khoshseyar
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    532

    نقل قول: وی بی .نت یا ..... ؟

    نقل قول نوشته شده توسط pirmard مشاهده تاپیک
    هیچ فرقی با هم ندارن .
    تازه متوجه شدم که شما داری به چی اشاره می کنی
    منظورتون اون یک باری که کد بیشتر از اون اجرا می شه
    البته اون یک بار با این که اتوی فور هم هست نباید ایقدر اختلاف ایجاد کنه مشکل اصلی مال اوون جایی بود که متغیر حله و تعریف کردیم
    برخلاف نظ شما این دو تا حلقه فور با هم اختلاف دارن و اونی که متغیرر حلقه توی خود حلقه تعریف می شه خیلی سریعتر . حتی اگه اون حلقه باز توی یه حلقه دیگه باشه

    یعنی


    int m, n as int16
    for m=1 to 100
    for n=1 to 100
    ..

    next
    next

    کنتدتر از کد زیر اجرا می شه

    for m as int16=1 to 100
    for n as int16=1 to 100
    ..
    ..
    next
    next

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

  4. #4

    نقل قول: وی بی .نت یا ..... ؟

    نقل قول نوشته شده توسط hossein-khoshseyar مشاهده تاپیک
    تازه متوجه شدم که شما داری به چی اشاره می کنی
    منظورتون اون یک باری که کد بیشتر از اون اجرا می شه
    البته اون یک بار با این که اتوی فور هم هست نباید ایقدر اختلاف ایجاد کنه مشکل اصلی مال اوون جایی بود که متغیر حله و تعریف کردیم
    خوب البته یه بار نبود . بلکه به ازای هر یه بار اضافه در حلقه ی بیرونی حلقه داخلی 1000 بار بیشتر اجرا می شد . البته از جهت اینکه قرار بود کد رو برای مایکروسافت ایمیل کنن یه کم قضیه حیثیتی بود .

    برخلاف نظ شما این دو تا حلقه فور با هم اختلاف دارن و اونی که متغیرر حلقه توی خود حلقه تعریف می شه خیلی سریعتر . حتی اگه اون حلقه باز توی یه حلقه دیگه باشه

    یعنی


    int m, n as int16
    for m=1 to 100
    for n=1 to 100
    ..

    next
    next

    کنتدتر از کد زیر اجرا می شه

    for m as int16=1 to 100
    for n as int16=1 to 100
    ..
    ..
    next
    next

    من در این باره یه تاپیک ایجاد کردم که آدرش توی هین تاپیک هست
    یکی از مدیران ارشد سایت هم جواب داد و دلیلش رو توضیح داد
    شما از من در مورد یک حلقه سوال کردید . اما این که الان میگید فرق داره دو تا حلقه ی تو در توه .
    پیشنهاد من به شما اینه که یه زحمتی بکشید برنامه رو با تعداد تکرار بالا و با یه حلقه بنویسید . یه بار به صورتی که شمارنده در دستور for تعریف بشه و یه بار هم قبلش از حلقه تعریف کنید
    برنامه ها رو ریلیز کنید . فایل PDB رو از فولدر پاک کنید و حالا دو تا برنامه رو (exe ها رو ) اجرا کنید .و نتیجه رو بگین . انتظار من زمان برابره.

  5. #5
    کاربر دائمی آواتار hossein-khoshseyar
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    532

    نقل قول: وی بی .نت یا ..... ؟

    نقل قول نوشته شده توسط pirmard مشاهده تاپیک
    پیشنهاد من به شما اینه که یه زحمتی بکشید برنامه رو با تعداد تکرار بالا و با یه حلقه بنویسید . یه بار به صورتی که شمارنده در دستور for تعریف بشه و یه بار هم قبلش از حلقه تعریف کنید
    برنامه ها رو ریلیز کنید . فایل PDB رو از فولدر پاک کنید و حالا دو تا برنامه رو (exe ها رو ) اجرا کنید .و نتیجه رو بگین . انتظار من زمان برابره.
    دوست عزیز من دقیقا همین کاری که شما می گید رو کردم و نتیجه این شد که اونی که متغیرر توی فور تعریف می شه سریعتر در حالی که من انتظار عکس این رو داشتم . گفتم تو اون تاپیکی که گفتم یکی از مدیزای ارشد اومد و توضیح داد که چرا اون کد سریعتر
    درحالی که من انتظار داشتم چون توی فور داخلی متغیر حلقهش به ازای هر بار اجرای حلقه بیرونی یه بار تکرار می شه کندترع

  6. #6

    نقل قول: وی بی .نت یا ..... ؟

    نقل قول نوشته شده توسط hossein-khoshseyar مشاهده تاپیک
    دوست عزیز من دقیقا همین کاری که شما می گید رو کردم و نتیجه این شد که اونی که متغیرر توی فور تعریف می شه سریعتر در حالی که من انتظار عکس این رو داشتم . گفتم تو اون تاپیکی که گفتم یکی از مدیزای ارشد اومد و توضیح داد که چرا اون کد سریعتر
    من اون تاپیک رو خوندم . اما هنوز دارم میگم این دو تا کد برابرند .
    SOURCE="vb"]
    Option Strict On
    Public Class Form1

    Declare Function QueryPerformanceCounter Lib "kernel32.dll" (ByRef x As Int64) As Byte
    Declare Function QueryPerformanceFrequency Lib "kernel32.dll" (ByRef x As Int64) As Byte
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim c1, c2, frq As Long

    QueryPerformanceCounter(c1)

    For i As Int64 = 0 To 20000000000
    Next
    QueryPerformanceCounter(c2)
    QueryPerformanceFrequency(frq)
    MsgBox((c2 - c1) / frq)


    End Sub
    End Class[/source]

    و همین کد بالا به صورت تعریف متغیر یک خط قبل از حلقه .
    شما با اجرای این کدها باید اعداد برابر بگیرین.

    اگر باز هم اعداد نابرابر گرفتین زحمت بکشین و این دو تا برنامه رو که اگزه هم هست اجرا کنین و بگین که آیا زمان نابرابر میگیرین ؟(ضمیمه شده)
    (ضمنا حواستون باشه چون برنامه موقع شروع به کار هیچی نشون نمیده ممکنه فکر کنین اجرا نشده و چند بار دیگه روش کلیک کنین. بعد از اجرای برنامه هیچی دیده نمیشه و بعد از حدود 30 ثانیه باید مسیج باکس بگیرین)
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip for.zip‏ (12.4 کیلوبایت, 2 دیدار)

  7. #7
    کاربر دائمی آواتار hossein-khoshseyar
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    532

    نقل قول: وی بی .نت یا ..... ؟

    دوست عزیز با کمال تعجب باید بگم که فابل شما با یک زمان اجرا شد 59.7
    می شه کدتو بزاری
    آخه من همه کاری که شما گفتید رو انجام دادم . وقتی هم اونجا توی اون تاپیک یکی از مدیران ارشد توضیح داد . دیگه مطمئن شدم
    اه می شه شما کدت رو بزار تا یه بار خودم اجراییش کنم و چک کنم

  8. #8

    نقل قول: وی بی .نت یا ..... ؟

    نقل قول نوشته شده توسط hossein-khoshseyar مشاهده تاپیک
    دوست عزیز با کمال تعجب باید بگم که فابل شما با یک زمان اجرا شد 59.7
    می شه کدتو بزاری
    آخه من همه کاری که شما گفتید رو انجام دادم . وقتی هم اونجا توی اون تاپیک یکی از مدیران ارشد توضیح داد . دیگه مطمئن شدم
    اه می شه شما کدت رو بزار تا یه بار خودم اجراییش کنم و چک کنم
    ضمیمه کردم. فقط توی فولدر ریلیز که رفتی اگه با اجرا جوابهای نابرابر گرفتی اون فایل PDB رو پاک کن و دوباره بدون اون فایل سرعتها رو چک کن.
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip for.zip‏ (197.0 کیلوبایت, 13 دیدار)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •