ftkj411522 发表于 2022-12-07 11:20
这个,怎么说呢,不确定能带来多少好处,但整个系统的复杂度是高了不少。
用一个 1微秒 的sleep定时器去刷时间,还是挺奢侈的,基本上这个核就基本干不了别的了,再一个,1微秒sleep也可能由于核被调度走,插入别的任务导致定时周期可能跟预想的不同。
实际上,linux 中, time 的速度已经足够快了,参考这个帖子里的数据
https://stackoverflow.com/questions/6498972/faster-equivalent-of-gettimeofday
一次 time 大概就是 1-2 ns 之间,不过它的精度只到秒
一次 clock_gettime(CLOCK_REALTIME_COARSE) 在 3-5 ns 之间,它的精度能到 10 毫秒
一次 clock_gettime(CLOCK_REALTIME) 在 15-20 ns 之间,它的精度能到 1 微秒
根据场景的不同,选用不同精度、不同耗时的时间方式可能会比较恰当
评论区
写评论这个,怎么说呢,不确定能带来多少好处,但整个系统的复杂度是高了不少。
用一个 1微秒 的sleep定时器去刷时间,还是挺奢侈的,基本上这个核就基本干不了别的了,再一个,1微秒sleep也可能由于核被调度走,插入别的任务导致定时周期可能跟预想的不同。
实际上,linux 中, time 的速度已经足够快了,参考这个帖子里的数据
https://stackoverflow.com/questions/6498972/faster-equivalent-of-gettimeofday
一次 time 大概就是 1-2 ns 之间,不过它的精度只到秒
一次 clock_gettime(CLOCK_REALTIME_COARSE) 在 3-5 ns 之间,它的精度能到 10 毫秒
一次 clock_gettime(CLOCK_REALTIME) 在 15-20 ns 之间,它的精度能到 1 微秒
根据场景的不同,选用不同精度、不同耗时的时间方式可能会比较恰当