Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
10 / 2 / 0
Регистрация: 21.04.2023
Сообщений: 130

Определить загруженность процессора

17.10.2024, 19:02. Показов 2840. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте дорогие специалисты.
появилась потребность определять загруженность процессора.
и например число загрузки в процентах(хотя можно и не в процентах) выводить допустим в ячейку D1
перерыла интернет, но решения не нашла именно с помощью VBA сделать такое.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.10.2024, 19:02
Ответы с готовыми решениями:

Загруженность процессора?
Уже нашёл ответ на Си. Помогите, пожалуйста, с "переводом" на Visual Basic. Ну а в идеале можно и сразу на PowerBasic :) #include...

Как только захожу в игру, загруженность процессора упирается в 100%, спустя минут 5 загруженность падает до 10-30%
Захожу я значит поиграть в Овервотч, но при заходе в игру первые 5 минут у меня загруженность процессора 90% (msi afterburner показывает...

Определить загруженность ядер процессора
Помогите определить загруженность ядер процессора (может как-нибудь получить эти данные из системы).

53
18.10.2024, 23:21
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от АЕ Посмотреть сообщение
я еще в 9 посту
Я вспомнил, это ведь она что-то мудрила с копированием данных из браузера, вместо нормального решения? Теперь эта чушь вылилась в другую...

0
10 / 2 / 0
Регистрация: 21.04.2023
Сообщений: 130
18.10.2024, 23:31  [ТС]
АЕ, дорогой вы не правы. я же проверяла. когда процессор загружен он не успевает выполнить функцию копирования вставки происходит сбой. перестаньте спорить мальчики, лучше напишите макрос.
0
860 / 510 / 187
Регистрация: 09.03.2009
Сообщений: 1,731
19.10.2024, 00:41
И чем для копирования-вставки вам поможет знание загрузки процессора? Будете DoEvents отдавать?
Когда не успевало, то вставлял просто задержки.
0
10 / 2 / 0
Регистрация: 21.04.2023
Сообщений: 130
19.10.2024, 09:30  [ТС]
Zeag, я же вроде описала это.

Добавлено через 3 минуты
I can, в 24 сообщении код не выводит результаты в ячейки. а надо чтобы выводил.
0
jump
 Аватар для I can
5009 / 4803 / 852
Регистрация: 13.04.2015
Сообщений: 10,060
19.10.2024, 13:57
Цитата Сообщение от carolina199x Посмотреть сообщение
в 24 сообщении код не выводит результаты в ячейк
Что я делаю не так?
1
10 / 2 / 0
Регистрация: 21.04.2023
Сообщений: 130
19.10.2024, 14:20  [ТС]
I can, вот так получилось вывести результат. но показания часто показываются неадекватные. часто минусовые значения показываются.
0
1411 / 872 / 93
Регистрация: 08.02.2017
Сообщений: 3,722
Записей в блоге: 2
20.10.2024, 03:53
Хотя общение здесь получается не очень интересное, но вопрос-то сам по себе интересный, да и на форуме, подчас, сильно нечя обсуждать, посему выложу решение
Кликните здесь для просмотра всего текста
Visual Basic
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
Option Explicit
Private Type FILETIME
    dwLowDateTime As Currency
    dwHighDateTime As Currency
End Type
 
Private Declare PtrSafe Function GetSystemTimes Lib "kernel32.dll" (ByRef idleTime As FILETIME, ByRef kernelTime As FILETIME, ByRef userTime As FILETIME) As Boolean
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)
 
Sub example()
    Dim Iter&
    Dim chckIter& 'следующая итерация, при которой будет проерка времени проверки CPU
    Dim chckTime! 'время следующей проверки CPU
    
    chckTime = Timer
    For Iter = 1 To 1000000 'какой-то длинный цикл
      
      'здесь основные вычисления
      
      If Iter < chckIter Then Else GoSub CheckCPUUsed 'проверка загруженности процессора перед выводом на лист
      
      DoEvents
      Sleep 10 'здесь операции с объектами листа (вместо sleep)
      
    Next
    Application.StatusBar =  ""  
Exit Sub
CheckCPUUsed:
    Const iterStep& = 10
    Const timeStep1 = 1! 'шаг проверки использования CPU при работе (сек.)
    Const timeStep2 = 3! 'шаг проверки использования CPU при ожидании (сек.)
    Const stepDif = timeStep2 - timeStep1
    Const cpuLimit = 20# 'предельный процент загрузки CPU, при котором макрос переходит в цикл ожидания
    
    chckIter = chckIter + iterStep
    If Timer < chckTime Then
    Else
        chckTime = chckTime + timeStep1
        If CPUUsage < cpuLimit Then
        Else
            chckTime = chckTime + stepDif
            Application.StatusBar = "Ожидание"
'            Debug.Print "Ожидание", Time
            Do 'цикл ожидания
                DoEvents
                Sleep 100
                If Timer < chckTime Then
                Else
                    chckTime = chckTime + timeStep2
                    If CPUUsage >= cpuLimit Then
                    Else
                        Exit Do
                    End If
                End If
            Loop
            Application.StatusBar = "Работа"
'            Debug.Print "Работа", Time
            Debug.Print
        End If
    End If
Return
End Sub
 
Function CPUUsage() As Double
'   https://www.cyberforum.ru/visual-basic/thread2609404.html#post14389329
'   edited by testuser2 19.10.24
    Static Init As Boolean
    Static StartTimes(1) As Currency
    Dim EndTimes(1) As Currency
    Dim CPU_Kernel As FILETIME
    Dim CPU_User As FILETIME
    Dim CPU_Idle As FILETIME
    Dim Idle_Time As Long
    Dim Total_Time As Long
   
    GetSystemTimes CPU_Idle, CPU_Kernel, CPU_User
    EndTimes(0) = CPU_Kernel.dwLowDateTime + CPU_User.dwLowDateTime
    EndTimes(1) = CPU_Idle.dwLowDateTime
  
    If Not Init Then
        StartTimes(1) = EndTimes(1)
        StartTimes(0) = EndTimes(0)
        Init = True
        Exit Function
    End If
      
    Idle_Time = EndTimes(1) - StartTimes(1)
    If Idle_Time > 0 Then
        Total_Time = EndTimes(0) - StartTimes(0)
        CPUUsage = ((Total_Time - Idle_Time) / Total_Time) * 100
    End If
    
    StartTimes(1) = EndTimes(1)
    StartTimes(0) = EndTimes(0)
 End Function
1
10 / 2 / 0
Регистрация: 21.04.2023
Сообщений: 130
20.10.2024, 11:33  [ТС]
testuser2, что это? это что то невообразимое, не осознанное, не понятое для меня

Добавлено через 55 секунд
testuser2, можно описание данного механизма?
0
1411 / 872 / 93
Регистрация: 08.02.2017
Сообщений: 3,722
Записей в блоге: 2
20.10.2024, 13:09
Цитата Сообщение от carolina199x Посмотреть сообщение
можно описание данного механизма?
Лучше скинь свой код или файл, потому что какой смысл объяснять если
Цитата Сообщение от carolina199x Посмотреть сообщение
не прикидывалась специалистом или тем кто хочет научиться!
0
10 / 2 / 0
Регистрация: 21.04.2023
Сообщений: 130
20.10.2024, 14:45  [ТС]
testuser2, я не могу скинуть, там очень много.
0
1411 / 872 / 93
Регистрация: 08.02.2017
Сообщений: 3,722
Записей в блоге: 2
20.10.2024, 15:29
Попытаюсь объяснить.
Строки 1-8 должны быть вверху модуля.
Строки 11-15 должны быть в начале процедуры
Строки 20, 22 должны быть внутри цикла (в котором происходит копирование/вставка и т.д.), непосредственно перед действиями копирование/вставка (и т.д.)
Строка 23 не нужна
Строки 26-95 помещаются в конец процедуры
Копируется функция CPUUsage
0
10 / 2 / 0
Регистрация: 21.04.2023
Сообщений: 130
20.10.2024, 22:03  [ТС]
testuser2, а зачем макрос "Sub example"?. я его просто убрала. и сделала также как и I can, как с прошлой функцией. и вы вела в ячейку D2. немного значения отличаются от прошлой функции.
Правильно ли я сделала что убрала макрос "Sub example" и оставила только функцию: Function CPUUsage"? просто я так и не поняла какую роль выполняет макрос "Sub example"

и скажите чем отличаются функции GetCPUUsage ту что ранее писали и CPUUsage
0
1411 / 872 / 93
Регистрация: 08.02.2017
Сообщений: 3,722
Записей в блоге: 2
21.10.2024, 01:42
Цитата Сообщение от carolina199x Посмотреть сообщение
а зачем макрос "Sub example"?. я его просто убрала
А это уже похоже н троллинг, так что "bye bye"
0
10 / 2 / 0
Регистрация: 21.04.2023
Сообщений: 130
21.10.2024, 18:26  [ТС]
testuser2, я вас не тролила. я правда не поняла зачем макрос "Sub example" нужен и удалила его. Вроде определение загруженности работает. только так и не поняла чем отличаются функции GetCPUUsage ту что ранее писали и CPUUsage.

Добавлено через 4 часа 34 минуты
testuser2, вот если бы всегда помогали то что я прошу, а не выдумывали своё, было бы намного быстрей и проще.
макрос "Sub example" я догадываюсь выполняет роль примера наверно. а примера чего так не догадалась. Может вы всё таки объясните, дорогой специалист?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2024, 18:26

Загруженность процессора 50%
Доброго времени суток! Сегодня появилась такая проблема - svchost.exe грузит процессор на 50%. Поискал в интернете решение проблемы:...

Загруженность процессора
Доброго вечера всем! Есть ли в php что нибудь для определения текущей загрузки процессора процессами (операционка Linux 2.6)?

Повышенная загруженность процессора
Здравствуйте. Возникла проблема на ноутбуке Acer Nitro 5 - в отсутствие работы каких-либо требовательных программ загрузка ЦП колеблется в...

Не понятная загруженность процессора.!
Всем здравствуйте. Несколько дней назад возникла такая странность: Постоянно системный процесс NT Kernel &amp; System загружает мой 4-х...

Влияет ли ОС на загруженность процессора?
Влияет ли ОС на процессор(то есть если я установлю вместо WIndows 7 Windows Xp, нагрузка на проц будет меньше?)


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

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru