当前位置: 首页 > news >正文

住房和城市建设部网站/百度seo排名优化软件

住房和城市建设部网站,百度seo排名优化软件,大型企业网站建设方案,乌鲁木齐赶集网前些天摸排wireguard-go的并发瓶颈,愧于对goroutine理解不深入,被误导,有必要记录以备忘。 wireguard-go为每一个peer开一个单独的goroutine,看起来像极了Apache的典型mpm,而boringtun则采用固定线程异步模型&#xf…

前些天摸排wireguard-go的并发瓶颈,愧于对goroutine理解不深入,被误导,有必要记录以备忘。

wireguard-go为每一个peer开一个单独的goroutine,看起来像极了Apache的典型mpm,而boringtun则采用固定线程异步模型,颇像Nginx架构,从数据上看,boringtun吞吐碾压wireguard-go,身边又有人煽动加码,便得出结论,为每一个peer创建一个goroutine这种架构是不正确的。

很显然,这个结论是错误的。

理论上,创建万级别的goroutine毫无压力,而我只用不到10个甚至单peer进行测试,听闻几句话就把罪过归于goroutine,这是我的罪过,应该归于自己的无知。

回到问题和质疑的原点,为每个请求创建一个task是不正确的,原因在于每个CPU同时只能运行一个task,CPU数量固定,随着task的增加,切换开销线性增加。异步IO之所以好,因为task切换开销固定。我们知道,切换开销是业务处理的额外开销,越大越不好。

这就是我说的不要让请求去调度资源,而要让资源去调度请求。

现在看goroutine。goroutine并不是操作系统级的task,切换开销极小。理解了goroutine的G(goroutine)-P(processor)-M(machine)模型,就会发现它事实上和异步事件模型一致:

  • 固定数量的M上跑不固定数量的G,G之间的切换开销与查找无异。

异步事件模型中,固定数量的线程处理所有被激活的请求,这些请求或被轮询处理,或排以优先级,这与goroutine的方式无异,goroutine的方式只是将“或轮询或优先级处理”这件事交给了Runtime库,程序员只需要关注自己的业务逻辑即可,即写一个前面加上go关键字的func。

goroutine的调度,本质上就是异步事件驱动的多请求处理的轮询。

golang好在,它甚至让你无法使用错误的方式处理并发,不信试试看,如何写一个程序,让操作系统级别的切换开销随着请求的数量线性增加。

无论怎么样,系统级task的数量都是一定的(more or less),就算100万并发,也不会有100万系统级task,系统级task永远都是CPU数量级的,如果用CPU数量级的task处理100万的并发,就是goroutine的调度问题了,而调度的本质就是查找,这个查找的开销,便和系统task切换无关了。

这便和下面的文章统一了:
https://zhuanlan.zhihu.com/p/492863461

因此,goroutie不足以构成并发瓶颈,它甚至是优势,虽然性能可能达不到标准异步模型,但它大大简化了编程难度,门槛极低。性价比还是优于rust的。

当关注纠结某件事时,偏见便侵入了,比方说当已有事实证据指向某个方向时,旁人只需轻微一点,你便很容易将所指之处作为根本去试图揭露,这便是偏见之害。若对goroutine没有深入理解,便很容易将per peer a goroutine等同于per client a thread/process,如果此时你还不敢下定论,只需有人也这么一说,便判定无疑了,但事实上,据此下的结论其效果正好相反。所以,不要针对自己不了解的任何东西下任何结论。

浙江温州皮鞋湿,下雨进水不会胖。

http://www.lbrq.cn/news/1357903.html

相关文章:

  • 榆林电商网站建设/上海网络推广培训机构
  • 个人网站建设方法和过程/暴疯团队seo课程
  • 盐城做网站企业/长春网站开发公司
  • 江苏做网站的公司/网络优化工具app手机版
  • 城乡建设部网站安全员证书查询/什么叫营销
  • 公司网站备案需要每年做吗/如何制作简单的网页链接
  • 做婚庆网站的功能定位/在百度怎么创建自己的网站
  • 网上做平面设计的网站/世界大学排名
  • 怎样做企业网站建设/班级优化大师下载安装最新版
  • 网站开发所需要注意的问题/百度灰色词排名代发
  • 响应式网站建设代理商/宁波seo外包代运营
  • 优享揭阳网站建设/宁德市公共资源交易中心
  • dede如何手机网站和电脑网站的数据同步更新/优化网哪个牌子好
  • 公明网站建设/免费推广网站地址大全
  • 绍兴做公司网站的公司/专业软文代写
  • 燕莎做网站/seo的基础优化
  • 高唐企业做网站推广/神起网络游戏推广平台
  • 现在做网站有前途吗/山东泰安网络推广
  • 如何自己做免费网站/seo工具
  • 垂直行业门户网站/品牌维护
  • 网盘搜索网站 怎么做/外贸推广平台怎么做
  • 黑龙江省机场建设集团官网网站/进入百度首页官网
  • 自力教育/大连seo建站
  • wordpress图片放大/武汉网站优化公司
  • 做网站的dreamweaver/百度指数分析案例
  • 做网站需要哪些东西/东莞网站建设推广品众
  • 下载手机软件的app/武汉seo技术
  • 展示型网站建设价格/怎么推广一个网站
  • 网站怎么做cp备案号/一个完整的产品运营方案
  • 做传感器交易的网站/如何在网站上推广自己的产品
  • 【pytorch(02)】Tensor(张量)概述、如何创建、常见属性,切换设备
  • 海康威视相机,MVS连接成功,但无图像怎么办?
  • 在AI时代,如何制定有效的职业规划?AI时代职业规划+AI产品经理角色
  • Shader开发(七)创建第一个Shader项目
  • SQL基础语法
  • 【C语言】自定义类型:联合体与枚举