再问 while true,底层是怎么做的?

2021-01-13 15:36:18 +08:00
 pinews
我今天做了实验,php,for ($i=1;$i<10000000;$i++) {},除了 i++什么也不做,1 千万次大约 1 秒,期间 cpu 跑满了,

for ($i=1;$i<100;$i++) {
usleep(1000);
}
usleep 1000 和 10000,以及更小,都差别不大,100000 差别就大了,按 10000 次算,才 1 百万,1.5 秒,cpu 应该是没变化。
usleep 不准,以及 usleep 不占用 cpu 我是能理解的,虽然不知道是怎么不占用 cpu 的。

redis Lpush 10000 次 0.9,mysql memory 10000 次插入 0.6

如果是其他长连接等待消息用 while 循环,想必也是不怎么占用 cpu,他们是怎么做的?

上次问长连接循环的,我词不达意,我就是想问等待消息,这个取数据占用 cpu 情况,如果正好取到数据一次需要多长,没取到数据要多长时间,这么个等待法效率怎么样( cpu 占用和最短时间),会不会出 bug,现在那么多消息队列软件除了其他功能外,好像都是说效率高的,那他们高在哪?实现方式有什么不一样吗?
920 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/744576

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX