亚当·巴斯

团队成员,Facebook

    我在Facebook的一个专注于计算引擎效率的团队工作了大约一年。我的大部分时间都花在设置和正确使用分析器来指导优化上。在大学期间,我专注于系统相关的课程,并参加了ACM-ICPC世界总决赛,因此性能、效率和优化一直是我关注的焦点。

    过去的会议

    2019年欧洲峰会 使用生产概要文件指导优化

    2019年10月16日下午05:00 PT

    确定最重要的优化区域可能很困难。造成这种困难的一个重要因素是,不同的生产工作负载有不同的需求和不同的瓶颈。一个工作负载的重要效率问题对于另一个工作负载来说可能可以忽略不计。因此,致力于提高效率的工程师知道如何分析他们的工作量并使用数据来确定正确的优先级是非常重要的。这个问题有很多方面值得讨论。首先,获得正确的分析是很重要的。

    不同类型的分析器有不同的优点和缺点,作为一名查看概要文件的工程师,重要的是要对底层发生的事情有一个高层次的理解,以便将所有事情放在上下文中。例如,在Facebook,我们既使用基于性能的分析器Strobelight,它具有最少的Java特定上下文,也使用第三方异步分析器,这是一个特定于Java的解决方案,忽略了诸如转换之类的本机进程。

    这两个解决方案对于不同的用例都很重要。其次,能够解释结果并以有意义的方式看待它们,对于正确识别最大的潜在效率胜利至关重要。有许多不同的方法来看待数据,这些方法在不同的情况下都是有用的。在Facebook,我们在很大程度上依赖于数据驱动的调查,以确定我们的效率努力在哪里花得最好。这涉及到大量使用剖析。

    在这次演讲中,我将介绍一些不同的分析器和我们用于收集数据的其他工具。我还将提供一些例子,说明我们过去是如何有意或无意地发现问题的,以及我们得出结论的过程。