PDA

View Full Version : چه طوری می تونم زمان واقعی اجرای یک تابع رو بدست بیارم ؟



cjNet
یک شنبه 04 اردیبهشت 1390, 19:35 عصر
سلام به همه دوستان .

من دارم یه برنامه می نویسم که یه معادله ریاضی رو از چندین روش مختلف حل می کنه ...
برای هر روش یه تابع نوشتم . وقتی معادله رو از ورودی می گیرم اون رو با همه روش ها ( تابع ها ) حل می کنم .
من باید زمان اجرا واقعی هر تابع رو بدست بیارم تا بتونم سرعت روشهای مختلف رو با هم مقایسه کنم .

حالا من چه طوری باید زمان واقعی اجرا هر تابع رو بدست بیارم ؟
ممنون از همه دوستان ... @

majidrezaei2007
یک شنبه 04 اردیبهشت 1390, 20:45 عصر
بهتره از thread برای اجرای حالات مختلف استفاده کنید
اونجوری می تونید اینکار انجام بدین

sara_aryanfar
یک شنبه 04 اردیبهشت 1390, 21:09 عصر
البته اساتید باید نظر بدن اما تا جایی که من می دونم این کار همون پیچیدگی زمانی یک الگوریتم هست ونباید اون رو به ثانیه اینا بیان کرد ولی برای محاسبه پیچیدگی زمانی یک الگوریتم باید تعداد اجرای دستور اصلی در داخل الگوریتم رو حساب کنید فرض بفرملئید داخل برنامه شما دستور اصلی یک if هست که عمل مقایسه رو انجام میده شما با دانستن تعداد انجام این مقایسه می توانید پیچیدگی زمانی الگوریتم رو به دست بیارید اگر توضیح من اشکالی داشت اساتید راهنمایی کنن

exlord
یک شنبه 04 اردیبهشت 1390, 21:37 عصر
برای بدست آوردن فاصله زمانی به ساده ترین شکل ...
DateTime dt1 = DateTime.Now;
MyMethod();
DateTime dt2 = DateTime.Now;
TimeSpan sp = dt2 - dt1;
MessageBox.Show(sp.Milliseconds.ToString());

مرتضی تقدمی
یک شنبه 04 اردیبهشت 1390, 21:38 عصر
سلام


Dim st As New Stopwatch
st.Reset()
st.Start()
''call your function
st.Stop()
lbltime.Text = st.ElapsedMilliseconds()


زمان اجرای تابع رو به میلی ثانیه بر می گردونه.

موفق باشید

cjNet
سه شنبه 06 اردیبهشت 1390, 16:20 عصر
ممنون از همه دوستان .

من از کلاس StopWatch و از خاصیت ElapsedTicks برای اندازه گیری زمان اجرا تابع استفاده کردم که جواب داد ... @:لبخندساده:

sabloger
سه شنبه 06 اردیبهشت 1390, 16:48 عصر
سلام بر دوستان گرامی
این روشی که شما استفاده کردین ممکنه که به توجه به شرایط مختلف در هر بار اجرا زمان های مختلفی رو برگردونه که عموما دقیق نیست
روشی که دوستمون sara_aryanfar (http://barnamenevis.org/member.php?191209-sara_aryanfar) فرمودن هم روش خوبیه ولی خیلی تئوریک و کتابیه!
به نظر من روش بهتر اینه که از طریق ترد این کار انجام بشه


موفق و برنامه نویس باشید!!

ParsaNM
دوشنبه 12 اردیبهشت 1390, 15:36 عصر
دوست عزيز ميشه لطفا يه مثال بزنيد ..؟

FastCode
دوشنبه 12 اردیبهشت 1390, 15:49 عصر
دوست عزيز ميشه لطفا يه مثال بزنيد ..؟
سلام.
یک عدد کتاب طراحی الگوریتم تهیه میکنید/میخونید.متوجه میشید.
این موضوع چیزی نیست که با مثال حل بشه.

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

چرا این قانون که سوالتون رو جدا بپرسید اجرا نمیشه؟باور کنید کسایی که میخوان جواب بدن قاطی میکنن.