为了让你的体验更快、更好、更高效,Facebook 2018将做这三件事!

猎云网  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

摩尔定律式的运算能力指数级增长已是昨日黄花,因此工程师不能只指望强劲的硬件解围,要紧的是增加软件效率。

Facebook用户现已超过20亿,其中有13.7亿每天都会使用这一社交软件。要处理如此海量的用户行为——接收图片、视频、文字信息等,需要软件强大的计算能力,这也难怪Facebook公司2018年的工程目标都有一个共同的主题——提升计算效率以及利用软件降低计算成本。

Facebook的工程部副手David Mortenson在一次专访中阐述了下一年工程部的工作重心。

首先,积体电路上可容纳的晶体管数目,约每隔两年便会增加一倍的摩尔定律增长速度已经不如从前,这是Facebook同其他科技公司公司一样不得不面对的问题。Mortenson解释道,以前的科技公司还能依靠摩尔定律下的硬件优势满足越来越强大的软件需求,但是时代变化,这一套再也行不通了。

这意味着Facebook必须找到新的方法,让软件可以在一定的硬件条件下更高效地运行。Mortenson说,要达到这个目的,第一步就是找到持久耐用的内存同时减少使用耗电量较大的内存。既然CPU运算速度与能力的增长不可能像从前一样快,那么最好的解决方法就是最大限度地利用现存的硬件设备。

而且,为了在消耗较少电能的前提下让更多的高效数据中心投入到大量运算工作中,需要将内存分区,将运算工作分布到大量的运算节点上,而非在某些计算节点上堆积如山。这样将大幅提高内存的利用率,Mortenson补充道。

实时服务升级

2018年Facebook的另一个工作主题是升级基础设施,以支持实时服务,此类服务并不只限于直播。

Mortenson解释道,这个想法是为了给工程师提供便利,这样他们就可以即时地处理产品,不用再为了某项功能专门撰写代码。

例如,你的一个FB好友发起了一项募捐活动,现在的情形是,Facebook客户端——手机或者电脑APP必须不停地访问服务器,询问是否有客户需要或者想要了解的内容。这是个拉式系统,意味着APP必须不断地返回到服务器寻找新内容。

相反,若Facebook将用户可能需要的内容直接推送给他们,比如上文的募捐活动,那么用户不仅能更早地得到活动信息,而且所占用的系统运算也会更少。

将机器学习运用到各个领域

Facebook工程师在开发新产品或服务时所具备的优势之一是,他们经常可以重复使用为其他项目编写的代码,还可以将其从海量存储库中提取出来。但Mortenson说,有些时候很难找到适当的代码片段。

所以他希望利用机器学习进行语义搜索,这样使工程师不必指定搜索内容,就能够轻松地找到所需的确切代码。

Mortenson希望机器学习能派上用场的另一个领域是选择合适的工程测试找到代码中的问题。

例如,若工程师需要稍微对代码进行修改,以改进募捐方式——可能只是换一个醒目点的捐赠按钮——重要的是确保这一变化不会影响其他功能。为了做到这一点,工程师将进行测试,以确保一切正常。Mortenson 认为通过机器学习会更容易找到合适的测试方式。

这将帮助工程师能够更快地开发新产品,并修复当前开发的产品,也意味着着更快的传输速度。

而且利用机器学习可以更快地找到正确的代码,从而降低开销,全面提高工程师的工作效率。为了说明这一点,Mortenson 解释说,Facebook会追踪其工程师等待他们的变更代码同步到代码库的时间——这段时间对于Facebook的Android程序工程师尤其长。在过去的一年中,Facebook采用各种策略,将工程师花费在等待上的时间减少了75%。现在,也许机器学习有望进一步缩短这个时间。

预测用户对新鲜资讯的需求

显然,许多Facebook用户在这款软件上花费了大量的时间,并且总是想从中获取一些新鲜资讯。但事实证明,用户最可能需要这些内容的时机是有迹可循的。 因此,FB公司正试图更为准确地预测这些时机,这将是公司降低计算开销的另一途径。

Mortenson说:“如果我们能够高效地预测(用户对此的需求),并提前准备好,那么即使是在用户上网的高峰期,我们的系统也可以满足这期间的用户需求,也就是说我们可以降低基础设施总成本和计算量。

尽管Facebook的用户群体遍布全球,软件最常见的使用时间是在太平洋时间的早上。所以若可以预测用户最想获取新鲜资讯的时间,系统就可以提前准备资讯内容,“我们也可以更有效地将它推送到你手上”,Mortenson表示。

Mortenson指出了这个问题的规模之大。他说,用户的一次更新——即使只是一些照片和随感——也会在公司的社交图像数据库中添加大约一千个对象。Facebook面临的挑战是如何在用户上传状态后对其进行实时更新的。将这个数字扩大到Facebook每天处理的数十亿个帖子,工程挑战之严峻显而易见。

解决这个问题的方法之一就是调整Facebook所使用的编程语言,更好地追踪用户帖子的新变化,从而最大限度地减少保持这些帖子即时最新所需的计算能力。Mortenson说,如果只有帖子只有一点变化,就无需重新计算其余的部分。

当被问道关于量化调整Facebook使用的编程语言的好处时,Mortenson说:“如果新的编程语言不把效率提高到五倍,就不算有效。”

随意打赏

facebook messengerfacebook是什么facebook下载facebook注册facebook登陆facebook更快更好
提交建议
微信扫一扫,分享给好友吧。