Это действительно зависит от того, что вы подразумеваете под "многими": -)
Я думаю, вы, вероятно, обнаружите, что использование стандартных функций ISO time()
и localtime()
будет более чем достаточно быстрым.Например, на моем "Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz"
с использованием неоптимизированного кода я могу вызвать time()
десять миллионов раз за 1,045 секунды, а комбинацию time()/localtime()
- полмиллиона раз за 0,98 секунды.Является ли это достаточно быстрым для ваших нужд, решать вам можете только вы, но я с трудом придумываю пример использования, который нуждается в большем хрюкании, чем этот.
Функция time()
дает вам числосекунд с начала эпохи, тогда как localtime()
преобразует его в местное время (из UTC) и разбивает его на более удобную форму, структуру struct tm
.
#include <time.h>
time_t t = time (NULL);
struct tm* lt = localtime (&t);
// Use lt->tm_year, lt->tm_mday, and so forth.
Любая попытка кэшировать дату/ время и использовать другие способы обнаружения дельты, чтобы применить к ней, например, с clock()
, почти всегда:
- будет медленнее;и
- страдают от того, что вы не будете воспринимать внешние изменения времени.