|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
||||||
Qt и время выполнения11.04.2012, 12:08. Показов 14116. Ответов 16
Метки нет (Все метки)
Всем привет, если не трудно поделитесь методами кто как замеряет время выполнения участков кода.
Я нашёл на просторах такой код:
Заранее спасибо за ответы)
0
|
||||||
| 11.04.2012, 12:08 | |
|
Ответы с готовыми решениями:
16
|
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 11.04.2012, 12:35 | |
|
flack, А тебе в чем время измерять надо? С какой точностью и для каких целей?
1
|
|
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
||
| 11.04.2012, 12:44 [ТС] | ||
|
0
|
||
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 11.04.2012, 12:52 | |
|
flack, Значит так.
1. Миллисекунда это действительно не так уж и мало, поэтому 0 вполне может быть. 2. Периодически твоя программа передает управление операционной системе, а операционка передает его другим программам. В windows, время через которое твоя программа получит управление назад, равно в среднем 30 миллисекундам. Отсюда делай выводы чего стоит точность больше 30 миллисекунд.... Но есть выход! Если уж очень надо! 1. Не передавать управление системе, все время работы тестируемого кода 2. Время считать по тикам процессора.
1
|
|
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
| 11.04.2012, 14:52 [ТС] | |
|
Я вроде время операционке не отдаю, у меня ДОС приложение.
Да, наверное 0 мс - это всё таки нормально для выполнения. Я кстати думал о тиках процессора, но если мне придётся тестироваться на разных машинах, то и тики там будут немного разные и их надо пересчитывать и я не знаю как Но думаю обойдусь тем что есть. Всем спасибо за ответы.
0
|
|
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 11.04.2012, 15:38 | |
|
flack, Ты под DOS работаешь или все таки приложение просто консольное?
0
|
|
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 11.04.2012, 15:45 | |
|
Чистый, Не, ну тут реальная разница есть....мало ли, вдруг реально под DOS.....
Добавлено через 3 минуты flack, Если приложение консольное, но под windows, то управление все равно отдается ) Ты это делаешь не обязательно явно, отдают управление некоторые функции, в том числе timer.start();
0
|
|
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
||
| 12.04.2012, 13:07 [ТС] | ||
![]() Тут не согласен, скорее ОС сама блокирует процесс и забирает время, но это нормально и такое делается во всех ОС в которых больше двух потоков. А вот timer.start(); я не знаю как на низком уровне это в Qt реализовано, либо функция с устройства или с регистра считывает, либо действительно управление забирается полностью.
0
|
||
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 12.04.2012, 13:15 | |
|
flack, Я говорю не скорее или наверное, а так и есть на самом деле. Никто у тебя управление забрать не может. И я делал программные модули, которые управление не возвращали в течении выполнения определенных процедур, и это точно! И от количества потоков это не зависит! Правда если управление не возвращаешь, то проц почти на 100 процентов грузится.
Единственное, твой процесс будет разделять процессорное время с системными задачами, но там, как я понимаю разделение не через диспетчер, а на уровне процессора. И в этом случае никаких задержек ты не почувствуешь. Добавлено через 49 секунд flack, Все таймеры работают через системы сообщений, а это 100% передача управления.
0
|
|
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
| 12.04.2012, 16:28 [ТС] | |
|
А, если тики выбирать, то они не будут через систему сообщений работать?
0
|
|
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 12.04.2012, 17:06 | |
|
flack, Нет, если через API получать информацию о тиках процессора, то никому управление передаваться не будет. Я работал с железками, для которых нужно было время подгадать с точностью да миллисекунды.
Если надо, то могу написать как тики считать.
0
|
|
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
| 12.04.2012, 17:21 [ТС] | |
|
Если не трудно. для общего развития было бы очень полезно.
0
|
|
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
||||||
| 13.04.2012, 06:02 | ||||||
|
завтра найду исходники
Добавлено через 12 часов 40 минут Вот таймер с использованием winAPI, который не передает управление и отсчитывает нужное время в миллисекундах в зависимости от частоты процессора. Тут он просто ждет нужное количество миллисекунд не позволяя забрать управление. На его основе можно делать таймеры для расчета точного времени выполнения кода.
1
|
||||||
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
| 13.04.2012, 08:58 [ТС] | |
|
Спасибо за код, надеюсь получится его от winAPI отвязать
0
|
|
|
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
|
|
| 13.04.2012, 18:05 | |
|
повторю, сказанное выше. в Qt есть специальный модуль QTestLib, в котором помимо прочего есть кросс-платформенные средства для замеров скорости выполнения.
кроме того, есть отдельные средства профайлинга, которые дают гораздо больше информации. вроде какой-то профайлер даже в Qt Creator есть...
0
|
|
| 13.04.2012, 18:05 | |
|
Помогаю со студенческими работами здесь
17
Время выполнения Время выполнения Время выполнения Время выполнения
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|