Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/58: Рейтинг темы: голосов - 58, средняя оценка - 4.57
zzzhenya

Получение значения тактовой частоты процессора

28.03.2010, 00:45. Показов 12473. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Не могли бы Вы помочь с определением в коде тактовой частоты процессора. Задание следующее: нужно определить, сколько работает метод. Для этого берется тактовая частота до начала работы метода и после, затем вычисляется разница.
Это очень важно! Заранее благодарна за любую помощь.
Спасибо!
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2010, 00:45
Ответы с готовыми решениями:

Падение тактовой частоты процессора
Играл в игру Arma 2 резко начал проседать фпс в сопровождение фризов решил перезагрузить компьютер после чего компьютер стал тормозить,я...

Определение тактовой частоты процессора
Добрый вечер! Дело вот в чем - пишу курсовую на тему "Определение тактовой частоты микропроцессора при выполнении базовых инструкций"....

Скачки тактовой частоты процессора
Помогите пожалуйста! Уже мучаюсь больше месяца. В общем беда с процессором, тактовая частота прыгает при нагрузке процессора( проверял...

6
146 / 118 / 8
Регистрация: 09.03.2010
Сообщений: 150
28.03.2010, 01:10
long start = DataTime.Now.Ticks;
код
long end=DataTime.Now.Ticks;

long timework = end - start;
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
28.03.2010, 01:50
erlik, убить тебя мало

сабж: либо из реестра, либо сам рассчитаешь. тут про такты:
http://www.codeproject.com/KB/... Speed.aspx
тут про информацию о процессорах:
http://www.onedotnetway.com/ge... t-using-c/
0
146 / 118 / 8
Регистрация: 09.03.2010
Сообщений: 150
28.03.2010, 13:39
Mikant,
ты хочешь сказать что таким способом нельзя измерить время выполнения кода?
почему то у меня все измеряется - да в написании ошибся - не DataTime.Now.Ticks; а DateTime.Now.Ticks; но это легко исправляется самостоятельно.

сам я измеряю через Stopwatch()
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();

stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
System.Windows.MessageBox.Show(String.Fo rmat("Затрачено времени {0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10)

Если такой умный - что ж код то не выложил?
Отсылать куда то все тут умники...я самому слабо все это дело пояснить? Вижу что слабо. Даже не пытайся.


Кому интересно: вот так можно узнать все данные счетчиков процессора (нужно подключить System.Management; )

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
ObjectQuery PerfRawData = new System.Management.ObjectQuery("SELECT * FROM Win32_PerfRawData_PerfOS_Processor");
    ManagementObjectSearcher PerfRawDataSearcher = new ManagementObjectSearcher(PerfRawData);
    ManagementObjectCollection PerfRawDataCollection = PerfRawDataSearcher.Get();
    foreach (ManagementObject obj in PerfRawDataCollection)
    {
        Console.WriteLine("Данные счетчиков производительности");
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + obj["Name"].ToString());
        Console.WriteLine("C1 переходов/сек : " + obj["C1TransitionsPersec"].ToString());
        Console.WriteLine("C2 переходов/сек: " + obj["C2TransitionsPersec"].ToString());
        Console.WriteLine("C3 переходов/сек: " + obj["C3TransitionsPersec"].ToString());
        Console.WriteLine("Скорость DPC: " + obj["DPCRate"].ToString());
        Console.WriteLine("Поставлено в очередь DPC/сек: " + obj["DPCsQueuedPersec"].ToString());
        Console.WriteLine("Frequency_Object: " + obj["Frequency_Object"].ToString());
        Console.WriteLine("Frequency_PerfTime: " + obj["Frequency_PerfTime"].ToString());
        Console.WriteLine("Frequency_Sys100NS: " + obj["Frequency_Sys100NS"].ToString());
        Console.WriteLine("Прерываний/сек:  " + obj["InterruptsPersec"].ToString());
        Console.WriteLine("% времени C1(скорость перехода в спящий режим): " + obj["PercentC1Time"].ToString());
        Console.WriteLine("% времени C2(скорость перехода в спящий режим): " + obj["PercentC2Time"].ToString());
        Console.WriteLine("% времени C3(скорость перехода в спящий режим): " + obj["PercentC3Time"].ToString());
        Console.WriteLine("% времени DPC " + obj["PercentDPCTime"].ToString());
        Console.WriteLine("Процент времени бездействия: " + obj["PercentIdleTime"].ToString());
        Console.WriteLine("% времени прерываний: " + obj["PercentInterruptTime"].ToString());
        Console.WriteLine("% работы в привилегированном режиме: " + obj["PercentPrivilegedTime"].ToString());
        Console.WriteLine("% загруженности процессора: " + obj["PercentProcessorTime"].ToString());
        Console.WriteLine("% работы в пользовательском режиме: " + obj["PercentUserTime"].ToString());
        Console.WriteLine("Timestamp_Object: " + obj["Timestamp_Object"].ToString());
        Console.WriteLine("Timestamp_PerfTime: " + obj["Timestamp_PerfTime"].ToString());
        Console.WriteLine("Timestamp_Sys100NS: " + obj["Timestamp_Sys100NS"].ToString());
        Console.ReadKey();
    }
некоторые параметры я не знаю что дают.
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
28.03.2010, 14:07
" Получение значения тактовой частоты процессора " звучит сабж. я написал куда надо двигаться для этого. ты - нет. ну разве что во втором посте, но речь не о нем. про то, что время выполнения так можно измерить, никто не спорит. это естественно

Добавлено через 5 минут
Цитата Сообщение от erlik Посмотреть сообщение
Если такой умный - что ж код то не выложил?
Отсылать куда то все тут умники...я самому слабо все это дело пояснить? Вижу что слабо. Даже не пытайся.
вот и скажи, чего ты такой обиженный? я тебя обидел? ну извини! больше я тебя обижать не буду. не обижайся) на обиженных, говорят, воду возят!
0
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
28.03.2010, 16:55
System.Management - это WMI ??? У меня экспресс и что то я не нашел ничего там. Вот порылся. Пространство Environment - много чего может дать..А тактовую частоту же можно из реестра считать. Оттуда вообще по моему все можно взять..


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(String.Format(
                "Число процессоров в системе:   {0}" ,
                   Environment.ProcessorCount.ToString()));
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            RegistryKey frecKey = Registry.LocalMachine;
             frecKey = frecKey.OpenSubKey(
                @"HARDWARE\DESCRIPTION\System\CentralProcessor\0", false);
           string str =  frecKey.GetValue("~MHz").ToString();
              MessageBox.Show(String.Format( "Частота Мгц:   {0}",    str));
        
        }
3
146 / 118 / 8
Регистрация: 09.03.2010
Сообщений: 150
29.03.2010, 01:10
wwowa,
Environment кое что дает.
например это:
C#
1
2
3
4
5
6
7
8
comboS.Items.Add("Имя машины: " + Environment.MachineName);
                comboS.Items.Add("Имя пользователя: " + Environment.UserName);
                comboS.Items.Add("Текущая платформа(номер версии): " + Environment.OSVersion);
                comboS.Items.Add("Идентификатор платформы: " + Environment.OSVersion.Platform);
                comboS.Items.Add("Время с момента загрузки системы: " + Environment.TickCount);
                comboS.Items.Add("Объем физической памяти текущего процесса:" + Environment.WorkingSet / 1024);
                comboS.Items.Add("Число процессоров: " + Environment.ProcessorCount);
                comboS.Items.Add("Командная строка текущего процесса: " + Environment.CommandLine);
Также класс Process из System.Diagnostics дает неплохую инфу о процессах.
Но далеко не все. Мне оказалось маловато.
ты даже не подозреваешь сколько может дать WMI - фактически всю системную информацию и полный контроль управления виндой - почти 5 тысяч классов для этого дела.(сам не считал но попадалась инфа с такой цифрой)
Wmi нет в пространстве имен Framework - у этого интерфейса администрирования виндой (или как там его правильно обозвать) отдельные namespace, запрос классов в C# делается через язык WQL. "SELECT * FROM Win32_PerfRawData_PerfOS_Processor" это и есть запрос на WQL.

набери в командной строке wbemtest.exe - увидишь GUI интерфейс WMI - дальше "подключить"
вводишь root\CIMv2 -> подключить и опция "классы" - рекурсивно -> OK получишь список классов namespace CIMv2 (это одно из четырех пространств имен в WMI)
двойной клик по имени класса дает список методов (если есть) и свойств класса.
описалово классов с префиксом Win32 есть частично в MSDN - но все на английском.
Использовать (вызывать) их можно через методы как раз System.Management.
Правда в WMI много чего непонятного для человека (такого как я например) абсолютно не знакомого с администрированием.
И понять (интерпретировать) некоторые возвращаемые значения свойств классов пока сложновато.

Насчет реестра не знаю - пока мало в нем рылся. Надо посмотреть что там есть.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2010, 01:10
Помогаю со студенческими работами здесь

Вывод тактовой частоты процессора
Здравствуйте, нашол программу на ассемблере (вроде сделана для МАСМА), помогите переделать ее для ТАСМА. ТАСМ ругается на RDTSC. .386 ...

Получить числовое значение тактовой частоты процессора в определенный момент времени
Доброго времени суток. Подскажите можно ли как то получить числовое значение тактовой частоты процессора в определенный момент времени?...

Сделать, чтобы начальное значение srand зависело не от времени, а от тактовой частоты процессора
Нужно сделать так чтобы начальное значение Srand было не от времени а от тактовой частоты процессора, подскажите как сделать

Повышение тактовой частоты
Недавно купил новый компьютер на продолжительное время с запасом оптимального разгона и стараюсь вникнуть в основные термины\понятия всех...

Умножитель тактовой частоты CPU
Здравствуйте. Вот собственно и вопрос "Что такое умножитель таковой частоты CPU". Не могу найти краткого определения. Буквально пару...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru