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