狂风中文网

第72章 模擬器更新51k大章(第2页)

天才一秒记住【狂风中文网】地址:https://www.kfzw.net

本又写了一行。

“那你在实际项目里用过asyncio吗?”

陈哲想了想,摇头:“用过一点。

不过有一次写异步爬虫,aiohttp搭配asyncio,跑起来之后发现有些请求没发出去。

后来查了半天,发现是事件循环里有个地方忘了await。

调了一天才找到。”

提米在旁边笑了一声:“我懂。

我第一次用asyncio的时候,在代码里写了个time.sleep,整个事件循环都卡住了。

后来才知道要用asyncio.sleep。

“7

几个人笑了。

气氛鬆快了一点。

本没笑。

他看著陈哲,又写了一行字。

“那gil在什么情况下是真正的瓶颈?”

陈哲的手指微微紧了一下。

这个问题的方向和他预想的不太一样——不是基础题,是在问真实场景的边界判断。

他想了想,开口:“如果是纯cpu计算,单线程已经跑满一个核心,gil就是瓶颈。

比如科学计算、图像处理、机器学习训练这些场景。

但那种情况一般用numpy,它底层是c,不在python层面算。”

本等著他继续。

“如果是混合场景,”

陈哲说,“计算加i0,比如web服务,gil的影响要看请求量和每个请求的计算占比。

qps不高的时候,gil不是问题。

qps上去之后,每个请求的计算时间只要超过几十毫秒,gil就会开始卡。”

他顿了顿。

“具体閾值要看业务。

一般估算的话,单核能撑的qps上限除以cpu占比,再除以並发係数。

比如单核能撑1000qps纯i0,如果每个请求有10%的cpu计算,那实际能撑的qps大概在100左右。

超过这个数就需要多进程或者换语言。”

本听完,没说话。

他低头在白板上又写了一行字。

这次写得很慢,像是在斟酌什么。

“你写过多线程的生產级代码吗?”

陈哲看著那行字,沉默了两秒。

然后他摇了摇头。

“没有。

我写的都是单机脚本和web后端。

多线程只在demo里跑过,没上过生產。”

本的眉头微微动了一下。

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

网王之刺头军团宠妻总裁坏透了魔头我劝你向善撼宙帝尊解谜与双马尾我就喜欢惯着你丧尸他后妈绝品神医混都市热血传奇之开局签到隐身戒指把惊悚游戏玩成修罗场[无限]我的导演时代重生之原配娇妻无限版帝国时代朝为田舍郎我是地球治理者吾家骄妻初养成快穿反派boss作死日常我在柯学世界当五人组幼驯染神医女凰重生之独步江湖签到从遮天开始为美好群星献上祝福黑莲花皇后她权倾朝野高人竟在我身边他在星河等我