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

Как правильно установить приоритет выполнения для програмы в исходном коде? - C++

Восстановить пароль Регистрация
 
Limb0
 Аватар для Limb0
19 / 19 / 0
Регистрация: 22.01.2012
Сообщений: 88
06.09.2013, 13:00     Как правильно установить приоритет выполнения для програмы в исходном коде? #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
#include <iostream>
#include <Windows.h>
int main ()
{   
    using namespace std;
    cout<<"Enter size of mass"<<endl;
    int size;
    cin>>size;
    int * ps=new int [size];
    for (int i=0; i<size; i++)
        ps[i]=3;
    int k=4;
    SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
    while (k>=0)
    {
        for (int bi=0; bi<size; bi++)
            std::cout<<ps[bi];
        std::cout<<std::endl;
        int i=size-1;
        if (ps[i]==3)
        {
            ps[i]=4;
            continue;
        }
        if (ps[i]==4)
        {
            while (ps[i]==4)
            {
                ps[i]=3;
                --i;
            }
            ps[i]=4;
            if (i<k)
                k--;
 
        }
        
    }
}
При работе программы увидел что нагрузка на процесор составляет всего 10-15%, поэтому я решил увеличить приоритет чтоб перебор выполнялся быстрее, но программа использует ЦП на прежнем уровне 10-15%. Почему не увеличивается процент использования цп? Неправильно записаная строка:
C++
1
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
? Или этот код невозможно выполнить быстрее?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2013, 13:00     Как правильно установить приоритет выполнения для програмы в исходном коде?
Посмотрите здесь:

C++ Как правильно установить Турбо С 3.0 на Notebook
Как установить приоритет сервису C++
C++ Безопасно ли использовать memcpy при выделении памяти по ходу выполнения програмы
Как правильно установить POCO C++ Libraries и протестировать? C++
Написать программу для подсчета общего количества строк в исходном коде C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
06.09.2013, 13:14     Как правильно установить приоритет выполнения для програмы в исходном коде? #2
Цитата Сообщение от Limb0 Посмотреть сообщение
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS);
частота процессора от этого не изменится, приоритет влияет лишь на распределение процессорного времени
Limb0
 Аватар для Limb0
19 / 19 / 0
Регистрация: 22.01.2012
Сообщений: 88
06.09.2013, 13:36  [ТС]     Как правильно установить приоритет выполнения для програмы в исходном коде? #3
А есть ли алгоритмы перебора двоих цифр но с большей скоростью перебора?
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
06.09.2013, 13:40     Как правильно установить приоритет выполнения для програмы в исходном коде? #4
Цитата Сообщение от Limb0 Посмотреть сообщение
перебор всех возможных комбинаций для двох цифр при заданой длине:
не совсем понятно что именно программа должна делать
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
06.09.2013, 13:40     Как правильно установить приоритет выполнения для програмы в исходном коде? #5
Можно попробовать распараллелить на несколько потоков и закрепить каждый поток за своим ядром процессора. На многоядерных машинах работает довольно неплохо.
Yandex
Объявления
06.09.2013, 13:40     Как правильно установить приоритет выполнения для програмы в исходном коде?
Ответ Создать тему
Опции темы

Текущее время: 23:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru