< 返回版块

miquanyu 发表于 2021-09-21 19:15

Tags:async

请问在async_std包裹的区域内怎么获取当前时间, 我使用了chrono获取时间,但似乎因为chrono没有实现futures,所以在代码中有问题

评论区

写评论
johnmave126 2021-09-23 06:32

CLOCK_GETTIME这个系统调用耗时一般100-200ns,rdtsc这个x86指令一般20ns,async的上下文切换一般是200-300ns,我觉得你这里非要async获取时间有点本末倒置。

Bai-Jinlin 2021-09-22 12:51

建议你看一下rust的async模型的原理

👇
miquanyu: 我大概知道原因是什么了,我想问一下,是不是在异步中,但凡涉及到系统调用和io的操作,都需要自行实现future,麻烦了

👇
Bai-Jinlin: 上代码

--
👇
miquanyu: 主要是想在一个tcp的连接中,获取时间戳做个判断,结果因为chrono,导致服务阻塞了... 请问应该怎么处理

--
👇
php-lsys: 如果在linux中获取系统时间,直接在用户态就完成了。你还要csip切换个future干球?

作者 miquanyu 2021-09-22 12:29

我大概知道原因是什么了,我想问一下,是不是在异步中,但凡涉及到系统调用和io的操作,都需要自行实现future,麻烦了

👇
Bai-Jinlin: 上代码

--
👇
miquanyu: 主要是想在一个tcp的连接中,获取时间戳做个判断,结果因为chrono,导致服务阻塞了... 请问应该怎么处理

--
👇
php-lsys: 如果在linux中获取系统时间,直接在用户态就完成了。你还要csip切换个future干球?

Bai-Jinlin 2021-09-22 11:45

上代码

--
👇
miquanyu: 主要是想在一个tcp的连接中,获取时间戳做个判断,结果因为chrono,导致服务阻塞了... 请问应该怎么处理

--
👇
php-lsys: 如果在linux中获取系统时间,直接在用户态就完成了。你还要csip切换个future干球?

作者 miquanyu 2021-09-22 10:52

主要是想在一个tcp的连接中,获取时间戳做个判断,结果因为chrono,导致服务阻塞了... 请问应该怎么处理

--
👇
php-lsys: 如果在linux中获取系统时间,直接在用户态就完成了。你还要csip切换个future干球?

作者 miquanyu 2021-09-22 10:52

主要是想在一个tcp的连接中,获取时间戳做个判断,结果因为chrono,导致服务阻塞了... 请问应该怎么处理

--
👇
Bai-Jinlin: 获取时间不是慢速系统调用,不会让整个系统堵塞也不耗时,要什么异步呀。。。

php-lsys 2021-09-21 21:27

如果在linux中获取系统时间,直接在用户态就完成了。你还要csip切换个future干球?

Bai-Jinlin 2021-09-21 20:06

获取时间不是慢速系统调用,不会让整个系统堵塞也不耗时,要什么异步呀。。。

1 共 8 条评论, 1 页