Форум программистов, компьютерный форум CyberForum.ru

Измерение времени выполнения потока - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ 2 Конструктора в Классе http://www.cyberforum.ru/cpp-beginners/thread103983.html
Мой класс: class zdanie { int plosh, obm, e; char *adres, *vladelec; public: zdanie(int pl, int ob, char adr, char vlad); zdanie(int el){e=el;}; };
C++ Вычислить значение функции y, развив функцию ln(x) в ряд Тейлора Задача: Вычислить значение функции y, развив функцию ln(x) в ряд Тейлора. Аргумент х изменяется от -1 до 3 с шагом 0.5. Определить погрешность. Y= ln(x)+ln(x/2) 0<x<=2 ln(x/2-1) x>=2 Мой код программы: #include <stdio.h> //підключення бібліотек уведення-виведення #include <conio.h> http://www.cyberforum.ru/cpp-beginners/thread103876.html
C++ С++ базы данных
Я понимаю, что возможно следующие вопросы уже обсуждались на этом форуме, возможно и не раз, но по поиску ничего вразумительного (понятного мне) не нашел (как и в гугле). Поэтому прошу оставить негодование и помочь. Пишу проект (лабораторная) с БД (struct). При работе возникло несколько вопросов (прошу давать советы, которые будут работать под любым компилятором :) ): 1) В поле (столбец БД)...
C++ Ввести предложение, и вывести самое короткое слово?
Ввести предложение, и вывести самое короткое слово??? Есть отдельная функция, которая удаляет подстроку со строки???
C++ Динамическое выделение памяти new http://www.cyberforum.ru/cpp-beginners/thread103837.html
Доброго времени. У меня в программе есть два двумерных динамических массива. Код компилируется, но возникает ошибка времени выполнения: "Инструкция по адресу "..." обратилась к памяти по адресу "...". Память не может быть "read"". если закоментировать выделение памяти под второй массив то программа работает без ошибок. Если попробовать выделить под второй массив совсем чуть-чуть памяти - один...
C++ Найти квадратный корень из суммы всех положительных элементов двухмерного массива помогите очень-очень решить две задачки по массивам 1.Вычислить сумму элементов, больше, чем середнеарифметичне значение всех элементов. 2. Добыть квадратный корень из суммы всех положительных элементов двухмерного массива. Буду очень сильно благодарен!!!!!! подробнее

Показать сообщение отдельно
OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
13.03.2010, 15:15  [ТС]     Измерение времени выполнения потока
вводя такие параметры
я получаю кучу баговв формул)
и также 0

Введите нижнюю границу диапазона(натуральное число): 2
Введите верхнюю границу диапазона(натуральное число): 600000000

Число членов: 599999999

Произведение последовательности: 0
Сумма последовательности -11188736

Время выполнение первого потока: 0
Добавлено через 1 минуту
кстате вот кусок кода, выполенный одногруппником

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
int _tmain(void)
{
    setlocale(0, "Russian");
    char* enterDate = new char[SIZE_OF_STRING];
    do
    {
        enterDate = EnterDate();//ввод даты пользователем
    }
    while(!CheckEnterString(enterDate));//проверка корректности введённой даты
 
    bool flag = true;
    int counter = 0;
    do
    {
        HANDLE hMyThread;//создание дескриптора потока
        DWORD dwThreadId;//создание идентификатора потока
 
        // Создаётся поток
        hMyThread = CreateThread(NULL  // нет защиты потока
                                , NULL // размер стека
                                , DateToString // это функция потока
                                , enterDate //указатель на параметр функции потока
                                , CREATE_SUSPENDED // поток не запускается
                                , &dwThreadId // идентификатор потока
                                );
 
        bool printVar;
        if(flag && counter == 0)
        {
            // созданному потоку устанавливается приоритет THREAD_PRIORITY_ABOVE_NORMAL
            SetThreadPriority(hMyThread // дескриптор потока
                             , THREAD_PRIORITY_ABOVE_NORMAL // уровень приоритета
                             );
            ++counter;
            printVar = true;
        }
        else if(flag && counter == 1)
        {
            // созданному потоку устанавливается приоритет THREAD_PRIORITY_LOWEST
            SetThreadPriority(hMyThread // дескриптор потока
                             , THREAD_PRIORITY_LOWEST // уровень приоритета
                             );
            flag = false;
            printVar = false;
        }
 
        // выполнение потока в данном случае вызовом функции возобновления
        ResumeThread(hMyThread);
 
       const int NANOSECOND_BLOCKS_IN_MILLISECOND = 10000;
 
        FILETIME threadStart; // начало работы потока
        FILETIME threadEnd; // окончание работы потока
        FILETIME dummy; // неиспользуемое значение
   // Ожидание завершения потока
        WaitForSingleObject(hMyThread, INFINITE);
        GetThreadTimes(hMyThread
                      , &threadStart
                      , &threadEnd
                      , &dummy
                      , &dummy
                      );
 
 
     
 
        // результаты вызова потока
        DWORD rezultString;
        DWORD rezultStringSecond;
 
        // Получение результата работы функции потока
        GetExitCodeThread(hMyThread, &rezultString);
 
        // Запросы на уничтожение объекта-потока
        CloseHandle(hMyThread);
 
 
        __int64 qwStartTime;
        __int64 qwFinishTime;
        __int64 qwTotalTimeElapsed;
        qwStartTime = FileTimeToQuadWord(&threadStart);
        qwFinishTime = FileTimeToQuadWord(&threadEnd);
        qwTotalTimeElapsed = qwFinishTime - qwStartTime;
 
        if(flag && printVar)
        {
            printf("\nqwStartTime %d\n\n"
                  , qwStartTime /10000
                  );
printf("\nqwFinishTime %d \n\n"
                  , qwFinishTime /10000
                  );
            printf("\nВремя работы потока с приорететом 'THREAD_PRIORITY_ABOVE_NORMAL' %d милисекунд.\n\n"
                  , qwTotalTimeElapsed / 10000
                  );
 
            printVar = false;
        }
        else if(!flag && !printVar)
        {
            printf("\nВремя работы потока с приорететом 'THREAD_PRIORITY_LOWEST' %d милисекунд.\n\n"
                  , qwTotalTimeElapsed / 10000
                  );
        }
 
        printf("Дата прописью: %sгода\n\n", rezultString);
    }
    while(flag);
 
    system("pause");
    return NULL;
}
Его не стал брать, так как он какойто непонятный)
 
Текущее время: 02:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru