问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何评价Go在百度BFE的应用?

发布网友 发布时间:2022-04-23 08:15

我来回答

1个回答

热心网友 时间:2022-06-18 05:49

首先BFE( front end)这个项目是一个功能类似于nginx的项目,并不是大家传统意义上理解的前端(html+css+js)。之所以称作“frontend”是因为它相对于整个应用是处于最前面直接处理用户的http请求的。

一开始这个项目是使用c语言写的,因为业界大多数http服务器也都是使用c来开发的(如apache、nginx)这段时期称作c-BFE时期。

但是到后期,这个项目遇到了一些问题:

c语言的开发效率太低了
c语言应对需求变更比较吃力
c语言抽象能力不足
c语言需要手动管理内存(有些不很优秀的组员会写出导致内存泄漏的代码)
bug越改越多,稳定性和功能是一对矛盾
c语言程序员不好招
所以问题基本上是出在c语言不适应了现在互联网的快速变更的需求。之后百度决定重写这个项目。

那么在开发效率上,golang基本上是满足了百度的需求。首先BFE组有很多优秀的c/c++的程序员了,他们转go几乎没有什么压力。对于一些不那么优秀的c程序员(比如经常漏内存的),用golang之后也不会导致一些低级错误了。所以在学习成本上,更换golang对百度影响不大。
另外,golang本身的并发模型、语言的描述能力、和内存管理等功能,也超过了c语言。所以整体上,开发效率得到了很大的提升。

使用golang遇到的最大的一个问题就是gc带来的问题。李炳毅老师也重点是讲解了如何解决gc带来的延迟问题。

在golang的1.3版本,百度的实际测试下,10k个对象大概会带来1ms的延迟。而BFE一般会维持50万左右的连接数,如果不对golang的gc做任何优化的情况下,100万链接大概会带来400ms的延迟。相当于一个http请求还没有打到应用上,单单在nginx上就耗费了400ms。这肯定不能接受。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 GO 和 KEGG 的区别 golang goroutine 会耗尽系统资源吗 Java要学到什么程度才能有公司要去实习? Go语言有什么优势? 为什么要使用 Go 语言?Go 语言的优势在哪里 如何才能把螃蟹清洗干净? Photoshop抠图(婚纱透明)方法。怎么办? 用adobe打开PDF文件上面有个二维码怎么删除?谢谢 InDesign cs6 输出PDF印刷之前,是不是必须要先用photoshop进行修图啊,比如修 美美修图如何打开Pdf Acrobat PDF中用TOUCHUP在PDF里直接调用PS修图,在PS调图后发现调图完的PDF文件变得很大,怎么解决? 谁会修改pdf格式图片里的内容求帮忙!急急急 - 信息提示 怎么样才能修改pdf格式的内容 求高手把pdf图片一合为整体的图片弄掉只留背景的办法 PDF如何去水纹 一个多页PDF文件用什么软件修图(去污点等),然后另存为一个多页PDF文件和一个JPG文件。 我想修改PDF里面的内容,用PS软件怎么修改呢? 像这样的pdf文件怎么修复呢,文字不清晰,看着难受? 如何修改pdf图片,PDF文件中的图片怎么修改? Rust 和 Go 的并发模型有什么不同,为什说 Rust 的并发模型更好 产后阴道总是有异味怎么回事?育儿问答 go语言适合做什么? go语言调试器有哪些官网 如何看待go语言泛型的最新设计? 产后36天恶露未尽,下边还有异味,咋办? 我小产二十五了.下边有异味.还有像粘稠一样的东西.那是咋回事 WIN8下怎么安装XP双系统 求如何安装WIN8 , GHOSTxp双系统 怎么在win8下安装Xp双系统,而且在开机选择的时候是win8那蓝色的选择项 怎么在GhostWin8.1下安装原版XP双系统? win8下怎么安装xp组成双系统? win8下装xp双系统 win8 64位系统怎么装双系统XP? W8 xp双系统怎么弄啊? W8 xp双系统怎么弄啊? 怎样在win8下用硬盘安装的方法装xp系统形成双系统 怎样在win8下用硬盘安装的方法装xp系统形成双系统 如何在win8下安装XP双系统 如何在win8下安装XP双系统