|
5 / 5 / 0
Регистрация: 28.11.2010
Сообщений: 81
|
|
Как с точностью до микросекунд замерить время выполнения функции?16.11.2011, 12:33. Показов 33758. Ответов 89
Метки нет (Все метки)
0
|
|
| 16.11.2011, 12:33 | |
|
Ответы с готовыми решениями:
89
Как получить время с точностью для микросекунд? Замерить время выполнения Замерить время выполнения потока |
|
4069 / 2703 / 433
Регистрация: 09.09.2017
Сообщений: 12,022
|
||
| 16.11.2017, 09:21 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 16.11.2017, 12:34 | |
|
0
|
|
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|
| 16.11.2017, 13:17 | |
|
Точно замерить время до микросекунд невозможно, в условиях многозадачности ОС, прерываний, переключения контекстов и т.д, все равно, что мерить попугаями. Приблизительно можно замерить так , перед вызовом читаем текущий счетчик тактов ассемблерной вставкой rdtsc, аналогично после вызова, ну и далее по формуле (new_time - old_time)/QueryPerformanceFrequency. Эту величину умножаем на 1 млн. получаем то, что требуется. QueryPerformanceFrequency это частота процессора в Гц...
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 16.11.2017, 13:53 | ||
|
во-вторых - его ещё нужно правильно готовить, что бы не глючил. там есть нюансы (например, юзают его принудительно только на одном ядре) а в третьих, и это самое главное: вот уже семь как этот способ морально устарел. есть же: std::chrono::high_resolution_clockпод виндой, у себя под капотом его родимую и юзает. вот только гарантированно - правильным способом. и не нужно заморачиваться непортированной, низкоуровневой, платформоспецифичной ботвой.
0
|
||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
||||
| 17.11.2017, 00:38 | ||||
|
0
|
||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 17.11.2017, 02:13 | ||
|
Вы знаете насколько падает(а падает ли) производительность с использованием обёртки std::chrono? А учитывая, что "низкоуровневый" код будет писать не супер квалифицированный спец с многолетним стажем, его велосипеды скорее всего будут медленнее. Про кроссплатформу и безопасность я вообще молчу. Сейчас программисты движутся в сторону от платформозависимых вещей и выбирают обёртки. chrono, thread, random, filesystem.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
| 17.11.2017, 11:49 | ||||||
|
от среднестатистического. и вы никак не сможете это продемонстрировать на практике. более того. взять тот же QueryPerformanceFrequencyсудя по вашей реакции, сами вы без посторонней помощи какого нибудь стек-оверфлоу, вообще не сможете его хотя бы просто правильно использовать
0
|
||||||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|||
| 17.11.2017, 12:28 | |||
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 17.11.2017, 12:41 | |||
|
ваше поведение красноречиво дает понять, что вы просто не в курсе подводных граблей QueryPerformanceFrequency напишите какой нибудь простенький бенчмарк с использованием QueryPerformanceFrequency когда сталкнетесь с неожиданным резкими скачками по среднестатистически отклонениям, тогда - гребите. не разгребе - приходите. я когда то всю эту хрень уже разгребал. а коли осилите разгребсти, стало быть на собственной шкуре прочувствуете, что нафиг все эти проблемы не нужны, когда можно просто взять готовое, корректное, стандартное, портируемое решение, и не иметь никаких головняков.
0
|
|||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||
| 17.11.2017, 12:55 | |||||||
|
Как связано
0
|
|||||||
|
4069 / 2703 / 433
Регистрация: 09.09.2017
Сообщений: 12,022
|
||
| 17.11.2017, 13:28 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 17.11.2017, 16:01 | ||
|
для си характерно мессиво из указателей и индексов. ога.
0
|
||
|
21 / 19 / 7
Регистрация: 14.03.2014
Сообщений: 249
|
|
| 17.11.2017, 16:03 | |
|
GbaLog-, Из личного опыта. Профилирование важная часть разработки. Но если мерить наносекундный код, микросекундным таймером, то ничего не выйдет. Если у вас както иначе, то сообщите пожалуйста. Я перепроверю. Щас просто дико занят, но в течении пары дней проверю.
0
|
|
|
4069 / 2703 / 433
Регистрация: 09.09.2017
Сообщений: 12,022
|
|
| 17.11.2017, 17:25 | |
|
0
|
|
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|||||
| 17.11.2017, 18:37 | |||||
0
|
|||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 17.11.2017, 19:32 | |||
|
на гитхабе забанили? откройте любую сишную либину. Добавлено через 8 минут
0
|
|||
|
4069 / 2703 / 433
Регистрация: 09.09.2017
Сообщений: 12,022
|
|||||||||||||||||||||||||||||||
| 17.11.2017, 19:48 | |||||||||||||||||||||||||||||||
|
Любую? Хорошо, открываю библиотеку SDL, точнее, SDL2/SDL_video.h (это только кусок, комментарии вырезаны)
Кликните здесь для просмотра всего текста
Открываем fcntl.h есть ли более Си-шная либа? Кликните здесь для просмотра всего текста
Открываем alsa/control.h Кликните здесь для просмотра всего текста
Открываем hidapi/hidapi.h Кликните здесь для просмотра всего текста
Открываем vlc/libvlc.h Кликните здесь для просмотра всего текста
Это не одна любая либа, а 5 разных. Как видно, функции принимают обычно не более 5 параметров, чаще всего 1-2 Сравним с /usr/x86_64-w64-mingw32/include/winbase.h Кликните здесь для просмотра всего текста
Как видно, аргументов в типичной Си-шной функции существенно меньше, чем в winapi-шной. Или все-таки приведете контрпримеры?
0
|
|||||||||||||||||||||||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||
| 17.11.2017, 20:33 | ||||
![]() вы ещё в реализацию не смотрели. вот где адь и израель. потому что я не в каком сишном говнокоде больше аргументов моя цитата:
0
|
||||
|
4069 / 2703 / 433
Регистрация: 09.09.2017
Сообщений: 12,022
|
||||||
| 17.11.2017, 23:13 | ||||||
|
Опять мне за вас доказательства искать? Вот цитаты обсуждения:
0
|
||||||
| 17.11.2017, 23:13 | |
|
Как замерить время работы функции? Замерить время выполнения базовых операций Как замерить длительность выполнения кода? Как замерить время сортировки массива? Используя О- символику, найдите время выполнения (как функции от N) процедуры или функции в наихудшем случае Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|