Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2011, 22:49   #1
Prizrak86
Форумчанин
 
Аватар для Prizrak86
 
Регистрация: 15.10.2011
Сообщений: 139
Сообщение Вопрос времени

у меня есть две процедуры, которые поочередно вычисляют одно и то же действие разными способами, мне нужно оценить эффективность выбранного способа.

Возможно ли поставить счетчик миллисекунд перед выполнением одной процедуры и по ее завершению и аналогично второй счетчик второй процедуры или хотя бы вывести время в миллисекундах.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Счастливые_билеты
{
    class Program
    {
        static void Spos1()
        {
            int summ = 0;
            for (int r1 = 0; r1 < 10; r1++)
                for (int r2 = 0; r2 < 10; r2++)
                    for (int r3 = 0; r3 < 10; r3++)
                        for (int r4 = 0; r4 < 10; r4++)
                            for (int r5 = 0; r5 < 10; r5++)
                                for (int r6 = 0; r6 < 10; r6++)
                                    if (r1 + r2 + r3 + r4 + r5 + r6 != 0)
                                        if (r1 + r2 + r3 == r4 + r5 + r6)
                                        {
                                            //Console.WriteLine("Счастливый билет {0}{1}{2}{3}{4}{5}", r1, r2, r3, r4, r5, r6);
                                            summ++;
                                        }
            Console.WriteLine("Количество счастливых билетов {0}", summ);
            Console.WriteLine("Процент счастливых составляет {0:f2}%", summ / (double)(999999 / 100));
        }
        static void Spos2 ()
        {
            int sum = 0;
            for (int n = 1; n < 1000000; n++)
            {
                int m1 = 0, m2 = 0;
                for (int n1 = 0; n1 < 6; n1++)
                {
                    if (n1 < 3) m1 += (int)(n/Math.Pow(10,n1)%10);
                    else m2 += (int)(n / Math.Pow(10, n1) % 10);
                }
                if (m1 == m2) sum++;
            }
            Console.WriteLine("Всего счастливых билетов {0}", sum);
            Console.WriteLine("Процент счастливы билетов {0:f2}%", (double)(sum*100)/999999);
        }
        static void Main()
        {
            //начало первого счетчика
            Spos1();
            //конец первого счетчика
            //начало второго счетчика
            Spos2();
            //конец второго счетчика
            Console.ReadKey();
        }
    }
}
Программист это не профессия, программист - это образ жизни.
Prizrak86 вне форума Ответить с цитированием
Старый 06.12.2011, 12:58   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Есть много способов. Самый простой запомнить текущее время, а после окончания методов вычесть из текущего запомненное:
Код:
DateTime start = DateTime.Now;
// код метода
TimeSpan timeItTook = DateTime.Now - start;
Можно использовать класс StopWatch:
Код:
public static TimeSpan Time(Action action)
{
    Stopwatch stopwatch = Stopwatch.StartNew();
   // код метода
    stopwatch.Stop();
    return stopwatch.Elapsed;
}
Еще можешь поискать в сети другие способы.
Hollander вне форума Ответить с цитированием
Старый 06.12.2011, 14:50   #3
Prizrak86
Форумчанин
 
Аватар для Prizrak86
 
Регистрация: 15.10.2011
Сообщений: 139
По умолчанию

Hollander

Большое спасибо!!! то что надо. а как тему закрыть????
Программист это не профессия, программист - это образ жизни.
Prizrak86 вне форума Ответить с цитированием
Старый 06.12.2011, 16:33   #4
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Лучше использовать Stopwatch.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос: Создание табеля рабочего времени в Excel zenturion Microsoft Office Excel 30 27.02.2010 11:29
Вопрос (не займет много времени) MARine_life Microsoft Office Access 2 15.12.2009 17:58
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10
Вопрос о времени работи программи terminadoor Помощь студентам 1 05.08.2008 11:42
вопрос по времени isidro Microsoft Office Excel 2 10.01.2007 08:14