Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109

Загрузка ЦП на 100%

07.10.2011, 14:12. Показов 5852. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Не подскажите, как вычислить из за чего программа грузит процессор? После запуска проги сразу загрузка повышается до 100%
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2011, 14:12
Ответы с готовыми решениями:

Некорректная загрузка N ядер на 100% (малая производительность)
Доброго времени суток уважаемые. Появилась задачка которую к сожалению решить не удается самостоятельно, а именно: Дано: - компьютер...

Загрузка цп 100%, при открытии диспетчера задач загрузка резко падает
Добрый день. Глянул через Processor hack, прикладываю скриншот

Загрузка ЦП всегда составляет 51%? Загрузка диска С составляет 100 ГБ из 100ГБ?
Доброго времени суток.Вот такая вот задачка? Загрузка ЦП всегда составляет 51%? Загрузка диска С составляет 100 ГБ из 100ГБ? Хотя реальная...

39
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
23.11.2011, 13:49  [ТС]
Студворк — интернет-сервис помощи студентам
Хотел бы поднять тему. Нашел процессы которые грузят проц, но почему не могу понять.

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
DWORD WINAPI ShimProc(LPVOID lpParameter)              // Shim thread proc
{
        UINT tick[2],                // Current time
                tick_saved[2],       // Latest saved count point
                i;    //             Iterator
        tick_saved[0] = GetTickCount();     // Save the ticks
        tick_saved[1] = tick_saved[0];      // for all shims
 
        while(true)                         // Main cyrcle
        {
                for (i=0;i<2;i++)           // Iterate shims
                {
                        tick[i] = GetTickCount();  // Getting current ticks
 
                        if (tick[i]-tick_saved[i]>time_max_shim[i])    // End period expecting
                        {
                                tick_saved[i] = GetTickCount();        // Reset saved ticks
                        }
 
                        try
                        {
                                EnterCriticalSection(section);          // Enter to threadsafe area
                                if (tick[i]-tick_saved[i]<time_in_shim[i] && tick[i]-tick_saved[i]>time_min_shim[i])    // Detect positive impulse moment
                                {
                                        signal_pos_shim[i] = 1;
                                        signal_neg_shim[i] = 0;
                                }
                                if (tick[i]-tick_saved[i]>time_in_shim[i])    // Detect negative impulse moment
                                {
                                        signal_pos_shim[i] = 0;
                                        signal_neg_shim[i] = 1;
                                }
                                if (stop_shim) return S_OK;
                        }
                        __finally
                        {
                                LeaveCriticalSection(section);               // Leave from threadsafe area
                        }
                }
                //try
                //{
                //        EnterCriticalSection(section);                     // Stop the thread
                //        if (stop_shim) break;
                //}
                //__finally
                //{
                //        LeaveCriticalSection(section);
                //}
 
        }
        //return S_OK;
};
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
DWORD WINAPI ServiceThread(LPVOID lpParameter)
{
        ASYNC_PAR DI;
        ASYNC_PAR DO;
        USHORT DI_save = 0;
        ULONG i,j;
        double Value;
        while(true)
        {
                DO.s_Type = L_ASYNC_TTL_OUT;
                DO.Data[0]=DO1|DO2|DO4;
                pI->IoAsync(&DO);
                i=0;
                try
                {
                        EnterCriticalSection(section_harvest);
                        for (j=0;j<Sync[I_ADC_PCI_COUNT_L791];j++)
                        {
                                DI.s_Type = L_ASYNC_TTL_INP;
                                pI->IoAsync(&DI);
                                DI1 = DI.Data[0]&0x1;
                                if (DI1!=DI_save)
                                {
                                        DI_Count++;
                                        DI_save = DI1;
                                }
                                if (i<9)
                                {
                                        Value = ((double) (Data[j]&0x0000ffff));///8/1024*5*25.74;
                                        Value = ((Value*5000/8192/data->Rizm[i])-data->In[i])/(data->Ik[i]-data->In[i])*(data->Tk[i]-data->Tn[i])+data->Tn[i];
                                        if (Value > data->Tn[i] && Value < data->Tk[i]) T[i] = Value;
                                }
                                i++;
                                if (i>15) i=0;
                                //Prevent error ~TForm();
                                //for (int k=0; k<1000;k++);
                        }
 
                        if (StopThread_harvest) break;
                }
                __finally
                {
                        LeaveCriticalSection(section_harvest);
                }
        }
        return S_OK;
}
Наглядно можно определить, что в них не так?
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
23.11.2011, 13:55
ну я бы лично сразу подумал на вечный вайл, хотя я не уверен
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
23.11.2011, 13:59
Sleep(1) в цикл поставить
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
23.11.2011, 14:20  [ТС]
kzru_hunter, в конце цикла?

Между какими строками лучше поставить?

Добавлено через 6 минут
Flyer, While тут нужен бесконечный, т.к. это функции обмена информацией (или считывания показаний датчиков) с платы Ввода/вывода L-Card. Пока работает программа, должен работать цикл.
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
23.11.2011, 14:23
Цитата Сообщение от DenProx Посмотреть сообщение
в конце цикла?
куда пожелаешь нужным.
sleep(1) приостанавливает выполнение кода на 1мс, во время которой проц отдыхает.
1
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
23.11.2011, 14:34  [ТС]
kzru_hunter, почему то не хочет sleep(1) принимать, компилятор ругается
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
23.11.2011, 14:48
чуть выше написано Sleep(1)
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
23.11.2011, 14:53  [ТС]
kzru_hunter, не работает... написал Sleep(1) в конце цикла, а компилятор ругается на него
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
23.11.2011, 14:57
какую ошибку выдает? точка с запятой стоит сразу после Sleep(1)?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
23.11.2011, 15:21  [ТС]
kzru_hunter, ; - стоит сразу ... а ошибка такая:

C++ Error] Unit1.cpp(143): E2015 Ambiguity between '_fastcall Idglobal::Sleep(unsigned int)' and '__stdcall Sleep(unsigned long)'
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
23.11.2011, 15:26
А так?
C++
1
::Sleep(1);
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
23.11.2011, 16:28  [ТС]
kzru_hunter, думаю, так должно работать. Вспомнил об двойном двоеточии, когда уже пришлось все закрыть) Программу на некоторое время заморозили. В ближайшее время проверю, отпишусь. Но подозреваю, проблему с загрузкой ЦП не решит. По крайней мере в полной мере...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.11.2011, 20:29
зачем вечный цикл ? проверять с определенным промежутком времени уже не гламурно ?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
23.11.2011, 20:52  [ТС]
LK, как бы переделали эти циклы? ) если не сложно... у меня просто идей пока нет... замучился уже с ней...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.11.2011, 21:23
я не вникал в эти тики, но нет ли возможности использовать таймер вместо цикла ?
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
24.11.2011, 07:42  [ТС]
LK, думаю что, нет. Мне самому трудно сказать, т.к. программу писал другой программист, давно. И остается загадкой, было ли так изначально еще на старых компах (загрузка ЦП), или только на новых начало проявляться. Что в свою очередь, звучит абсурдно, имхо. И остается вопрос, если и раньше так грузился проц, то почему это не было исправлено...

В общем для начала, при следующей возможности попробую поставить Sleep. Если не поможет, буду пробовать цикл модернизировать.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
24.11.2011, 08:34
для начала уберите цикл и посмотрите, что будет, так сказать, с одной итерацией.
1
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
24.11.2011, 08:38  [ТС]
LK, Точно) Отличная идея) Хотя думаю результатов может быть только 2. Если в цикле есть дыра, то после первой итерации проц загрузится, а если нет, то будет все нормально. Т.к. я пробовал просто закомментировать места, где эти функции вызывались, загрузка упала со 100% до 37%.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
24.11.2011, 09:53
Цитата Сообщение от DenProx Посмотреть сообщение
результатов может быть только 2
я это и имел ввиду.
1
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
25.11.2011, 02:05
Цитата Сообщение от DenProx Посмотреть сообщение
И остается загадкой, было ли так изначально еще на старых компах (загрузка ЦП), или только на новых начало проявляться. Что в свою очередь, звучит абсурдно, имхо.
Возможно на старых машинах программа просто частично зависала и ОС справлялась с этим автоматически на время блокируя потоки из-за нехватки ресурсов. А сейчас подобной автоматической блокировки нет. Но это из разряда сценария к фантастическому фильму.
Мне кажется все намного проще, программа всегда работала некорректно и циклы уходили в никуда. Что очень вероятно, благодаря while(true). Ранее ОС сама ее стопорила, а теперь из-за всех сил пытается "закончить начатое".
Либо все еще проще - изменились входные данные, которые не предусмотрены данными функциями. И теперь (опять же да будет while!) условия просто не выполняются.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.11.2011, 02:05

Загрузка ЦП 100%
Здравствуйте, знакомый посоветовал данный форум, поэтому я собственно здесь) Начиная где то с вчера-позавчера ЦП начал ужасно...

Загрузка ЦП на 100%
PowerShell нагружает ЦП на 100% на Windows 7, как отключить или удалить навсегда?

Загрузка ЦП 100%
В общем такая беда у меня: в windows 7 при запуске торрента или например aimp проц грузится на 100% и жуткие тормоза при этом. В общем...

Загрузка ЦП до 100%
Добрый день. Процессор загружен полностью, при открытии диспетчера задач нагрузка падает до минимума. Помогите решить проблему.

Загрузка ЦП на 100%
Снова всем привет:) Есть еще один интересный экземпляр. Бьюсь уже неделю над ним. Ничего не могу понять. Короче был на работе непашущий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru