Библиотека mtime, Windows only | Время в миллисекундах |
Здравствуйте, гость ( Вход | Регистрация )
Библиотека mtime, Windows only | Время в миллисекундах |
22.3.2011, 10:19
Сообщение
#1
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Написал небольшую библиотеку, позволяющую получать время с момента запуска системы в миллисекундах. Библиотека может быть полезна для оценки производительности кода.
mtime.rar ( 1.29 килобайт ) Кол-во скачиваний: 17 mtime_src.rar ( 330 байт ) Кол-во скачиваний: 12 Пример использования: Код require"mtime" print( mtime.get() ) |
|
|
22.3.2011, 22:26
Сообщение
#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 |
|
|
22.3.2011, 23:31
Сообщение
#3
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Setuper
Если уж делать кроссплатформенно, то нужно округлить tv.tv_usec / 1000 Кстати, можно ли получить время в микросекундах под вендой? |
|
|
23.3.2011, 0:09
Сообщение
#4
|
|
Освоившийся участник Группа: Пользователи Сообщений: 248 Регистрация: 14.7.2008 Из: Хабаровск Пользователь №: 193 Спасибо сказали: 40 раз |
Уважаемые alex82 и Setuper. Сможете сделать либу для создания таймера для Lua ? Или это невозможно ?
PS Ссори за оффтоп. |
|
|
23.3.2011, 2:07
Сообщение
#5
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Используй хабсофт с таймерами ;)
|
|
|
23.3.2011, 10:47
Сообщение
#6
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
...или Lua-AIO с wxLua. Или тот же Lua-AIO с созданием ветви и использованием ThreadWait()
|
|
|
23.3.2011, 21:46
Сообщение
#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; |
|
|
|
Сейчас: 23.11.2024, 5:31 |