Memray 项目展示彭博为何是一家“开源优先”的公司

“公平地说,彭博和金融服务行业几十年来一直保持着密切的合作关系。几乎每一位交易员、分析师和首席财务官都熟悉彭博终端或该公司的数据和新闻服务,并且可能每天都以某种方式与之互动。”

可能不太为人所知的是彭博对开源软件的贡献,这既是其自身技术和应用基础设施的驱动力,也是为更广泛的开源社区开发企业级工具的动力。

例如,这家全球金融、媒体和技术公司拥有 3,000 多名工程师,他们使用 Python 编写代码并运行数据分析。彭博建立了一个专门的 Python 基础设施团队来支持其工程师,以及一个开源项目办公室 (OSPO) 来进一步推动其在开源领域的工作和影响力。

几年前,彭博的 Python 基础设施工程师被要求找到一种解决方案,以解决无法获得可行的内存分析器的问题,这些分析器能够满足彭博开发人员的特定需求。这些开发人员是 Python、Linux、ELF、DWARF 和底层系统编程工具方面的专家,他们经常使用用 Python 以外的编程语言(如 C/C++)编写的本机扩展。Python 生态系统缺少一种工具来帮助用户发现 Python 程序在哪里使用内存。Python 基础设施团队开始工作,经过广泛的研究和用户调研,该团队确定现在是彭博工程师利用其专业知识开发一种新型内存分析器,并将其添加到其开源工具组合中的时候了。

Memray,一个适用于 Linux 上 Python 的开源内存分析器,最近由彭博发布,以填补这个内存分析器空白。考虑到彭博开发人员和其他本机扩展用户的需求,Memray 的设计旨在使开发人员能够分析应用程序中的内存分配,以帮助减少内存使用、查找内存泄漏以及识别代码中导致低效分配的热点。它透明地传递这些信息,向用户展示 Python 代码和扩展代码如何相互交互,以及 Python 解释器如何请求内存。为了履行其对开源的承诺,彭博认为重要的是向全球 Python 开发人员提供此工具,因此以开源方式创建了它。Memray 也是可扩展的,可以提供报告,从而全面可靠地了解特定于社区和用户组的数据或领域问题的代码分配模式。

Memray 于 2022 年 4 月 27 日宣布,但在前一周,当一位 CPython 开发人员在 Twitter 上提到它时,围绕它的社区已经在悄然建立。仅仅几天之内,Memray 就迅速在 GitHub 上吸引了超过 7,000 颗星(今天它拥有超过 8,000 颗星)。

“我们认为这不仅说明了对该工具的需求,也说明了彭博致力于提高人们对开源的认识并发展开源方面的专业知识,”彭博 OSPO 的 Alyssa Wright 说,该部门设在公司的 CTO 办公室。“开源是彭博的基础组成部分,无论是对于我们的数字基础设施还是我们社区驱动的文化。”

彭博确立自身为“开源优先”公司的旅程始于十年前。该公司认为,这种关注不仅是对开源计算的承诺,也是对协作和创新文化的承诺。彭博欢迎观点、技能和专业知识的多样性,这使得不同的部门能够协同工作,以开源为基础,开发解决实际问题的产品,这不仅支持了彭博的产品创新,也支持了创新文化。

Alyssa 认为,彭博对 OSI 的支持是理所当然的。“OSI 是开源在各个领域的代言人。OSI 秉持开源的精神,被视为开源理念的合作伙伴和倡导者,即使现代开发不断发展也是如此。”

公司在开源领域进行协作以解决日益增长的问题并影响组织变革方面存在巨大机会。Alyssa 期待看到的一些事情是

  • 公司和生态系统内部对开源贡献和贡献者价值的认可。
  • 对衡量“开源优先”文化的影响以及进一步支持开源工具开发的投资。
  • 关于如何在开源环境中“存在”的更多指导和沟通。

查看 GitHub 上的 Memray。社区可以通过提出改进建议和添加到工具中的功能,以及使用和分析 Memray 收集的大量数据的有用方法,来帮助塑造 Memray 的未来和发展方向。它被创建为开源的,因此它可以为其他公司和行业带来价值,允许添加适应贡献者面临的问题的新报告,并且可以扩展到在其他操作系统上工作。

在公司的 博客 或在 Twitter 上关注 @TechAtBloomberg,了解彭博在开源技术和文化方面的所有工作。