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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2012, 19:02   #1
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию Философский вопрос - как искусственно ограничить ресурсы системы?

Например, у нас есть компьютер с 2ггц цпу, при запуске

PHP код:
#include <iostream>

using namespace std;

int main()
{
    
int i,a[100];

    while (
i!=101) {
        
a[i] = i;
        if (
101) {
            
0;
        } else {
            
i++;
        }
    }
    return 
0;

Будет нагружать процессор по максимуму. Можно ли как-то искусственно сказать программе "используй только 500мгц от цпу" ну или в процентном соотношении, например "только 20% от мощности цпу"? Если есть привязка к воркам для решения этой задачи, то ворк Qt.
_KUL вне форума Ответить с цитированием
Старый 14.05.2012, 20:58   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

там в условии ошибка:

Код:
 if (i = 101) {
Присвоение, вместо сравнения.

Простой способ разгрузить процессор - ставить в циклах задержки там, где не требуется высокая производительность . Что бы процессы сливали свои кванты времени в пользу других процессов.
_Bers вне форума Ответить с цитированием
Старый 14.05.2012, 21:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Собственно а sleep() не подойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2012, 05:30   #4
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

а разве при слипе вся программа не замерзает на время слипа?! если только в многопоточности, чтобы например один поток в паузе был, а другие выполнялись. А глобального ограничения по характеристикам нет в природе? Чтобы и слипа небыло, было выполнение, но и не на все 100% использования ресурсов.
_KUL вне форума Ответить с цитированием
Старый 15.05.2012, 07:13   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вся программа не замерзает на время слипа?
Замерзает, но не настолько что ты увидишь это глазом )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2012, 08:43   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
но и не на все 100% использования ресурсов.
нет понятия на 100% работает или на 50%.
оно или выполняет код или не выполняет.

прочитайте про псевдо-многопоточность.

а слипом вы будете давать больше возможностей другим приложением, итого не 100% выйдет(прерывистая работа в какой то мере)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.05.2012, 16:33   #7
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

значит в исходниках цитрикса и вмваре при создании виртуальных машин, где задаём сколько отдавать виртуальной машине ресурсов, по сути дела слип выставляется? )))
_KUL вне форума Ответить с цитированием
Старый 15.05.2012, 16:36   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
значит в исходниках цитрикса и вмваре при создании виртуальных машин, где задаём сколько отдавать виртуальной машине ресурсов, по сути дела слип выставляется? )))
не видел там про нагрузку на ЦП пункта.
а про память, там VMWare это виртуальная машина, код не выполняется напрямую, потому она просто имитирует все нужные параметры.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.05.2012, 16:59   #9
_KUL
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 96
По умолчанию

точно, там про ядра. а можно процесс/поток к ядру привязать?
_KUL вне форума Ответить с цитированием
Старый 15.05.2012, 17:43   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

да можно.
SetProcessAffinityMask, SetThreadAffinityMask.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Философский вопрос)сисадминам Elm0 Свободное общение 8 24.03.2008 11:20
Как ограничить размер файла geronime PHP 8 20.02.2008 14:26
Как ограничить ввод? alsq Общие вопросы Delphi 8 24.03.2007 14:30
Ресурсы, зачем нужны ресурсы Hallo Обсуждение статей 0 12.12.2006 21:30