|
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
![]()
Сообщение
#1
|
|
![]() Местный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз ![]() |
Написал небольшую библиотеку, позволяющую получать время с момента запуска системы в миллисекундах. Библиотека может быть полезна для оценки производительности кода.
![]() ![]() Пример использования: Код require"mtime" print( mtime.get() ) |
|
|
![]()
Сообщение
#2
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
не кроссплатформенно
Вот код функции для линукса: Код #ifndef _WIN32
#include <sys/time.h> unsigned long GetTickCount() { struct timeval tv; gettimeofday(&tv, NULL); return (tv.tv_sec * 1000 + tv.tv_usec / 1000); } #endif // _WIN32 |
|
|
![]()
Сообщение
#3
|
|
![]() Местный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз ![]() |
Setuper
Если уж делать кроссплатформенно, то нужно округлить tv.tv_usec / 1000 Кстати, можно ли получить время в микросекундах под вендой? |
|
|
![]()
Сообщение
#4
|
|
![]() Освоившийся участник ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 248 Регистрация: 14.7.2008 Из: Хабаровск Пользователь №: 193 Спасибо сказали: 40 раз ![]() |
Уважаемые alex82 и Setuper. Сможете сделать либу для создания таймера для Lua ? Или это невозможно ?
PS Ссори за оффтоп. |
|
|
![]()
Сообщение
#5
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
Используй хабсофт с таймерами ;)
|
|
|
![]()
Сообщение
#6
|
|
![]() Местный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз ![]() |
...или Lua-AIO с wxLua. Или тот же Lua-AIO с созданием ветви и использованием ThreadWait()
|
|
|
![]()
Сообщение
#7
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Setuper Если уж делать кроссплатформенно, то нужно округлить tv.tv_usec / 1000 Кстати, можно ли получить время в микросекундах под вендой? Зачем округлять? Какой смысл несёт округление? Чтобы получить время в микросекундах под виндой можно написать аналог линуксовой функции gettimeofday: Код #include <time.h>
void gettimeofday(struct timeval * tv, struct timezone *) { union { FILETIME ft; unsigned __int64 ns100; } now; GetSystemTimeAsFileTime(&now.ft); //116444736000000000 = (24 * 3600) * ((1970 - 1601) * 365 + 89) * (1000000000 / 100) tv->tv_sec = (long) ((now.ns100 - 116444736000000000LL) / 10000000LL); tv->tv_usec = (long) ((now.ns100 / 10LL) % 1000000LL); } struct timeval tv; gettimeofday(&tv, NULL); std::cout << tv.tv_usec << std:endl; |
|
|
![]() ![]() |
![]() |
Сейчас: 17.2.2025, 8:25 |