libfast-mktime:mktime(3) 库内插器针对同一日期内的多次重复调用进行了优化

时间:2024-07-17 18:42:32
【文件属性】:

文件名称:libfast-mktime:mktime(3) 库内插器针对同一日期内的多次重复调用进行了优化

文件大小:8KB

文件格式:ZIP

更新时间:2024-07-17 18:42:32

C

libfast-mktime 这是对 mktime(3) 的微优化,在最好的情况下将其加速约 10 倍到 86 倍,在最坏的情况下会产生轻微的影响。 动机 系统 mktime(3) 处理时区、tzset()、闰年、输入归一化,加上明显的日期计算,所有这些都可能需要一些周期。 如果您的用例需要在同一日历日内进行多次 mktime() 调用,则有一个简单的优化可以显着节省。 一个常见的用例是在同一天解析具有许多时间戳的大型日志文件,并且您希望以纪元时间存储时间戳。 注意事项 这个 hack 不是线程安全的。 它不会检查调用者是否使用 tzset 切换了时区。 算法 第一次调用,调用系统 mktime(),以纪元时间记住日期和该日期的开始。 然后对于后续调用,如果它们在同一日期,将请求的 H:M:S 添加到保存的午夜,跳过所有日期计算。 如果日期不同,再次使用系统 mktime() 并记住


【文件预览】:
libfast-mktime-master
----unittest.c(3KB)
----fast-mktime.c(2KB)
----LICENSE(7KB)
----.gitignore(178B)
----Makefile(760B)
----README.md(2KB)
----benchmark.c(1KB)

网友评论