Code前端首页关于Code前端联系我们

如何将 Tumblr 从 PHP 5 升级到 PHP 7?

terry 2年前 (2023-09-25) 阅读数 46 #后端开发

PHP 5 升级到 PHP 7 Tumblr是如何搞定的?

Tumblr 团队一直在寻找新的方法来提高网站的性能。这意味着向经常访问的代码添加缓存、寻找更快的 CDN 配置或更新底层软件。

我们最近在多团队的努力下将整个 Web 服务器群从 PHP 5 升级到了 PHP 7。整个更新是一个有趣的项目,结果非常酷,所以我们想与您分享。

时间计划

这始于 2015 年秋季的黑客日(类似于黑客马拉松)项目。 @oli和@travPHP7 RCRC❀r❙❙❀。目前,许多 PHP 扩展尚不支持 PHP 7,但也有一些。 ,它仍然有效。

今年春天,PHP7开始变得更加稳定,我们决定是时候更加关注更新了。我们做的第一件事就是打包新版本,使安装变得简单和一致。 。同时,我们还在新版本中包含了我们内部的PHP插件,因此一切准备就绪,可以使用。

编写了一个小脚本来升级(或降级)开发服务器,然后在春末或夏初开始测试(更多内容见下文),PHP包构建迭代、性能测试和评估,以及随着它的稳定,我们开始吸引更多的开发人员在支持PHP7的机器上进行日常开发。最后,在八月底,我们对测试非常有信心,以至于我们在一小部分实时服务器上使用了PHP7。两周后,随着增量的增长,所有响应用户请求的服务器都已更新!

测试

更新时,测试所有代码以确保其运行相同非常重要,并且我们有一些方法来修复它。

潘。在这个项目中,我们使用它来查找代码库中与PHP7不兼容的代码。这使得查找和解决这些问题变得非常容易。我们的一些单元和集成测试还有助于识别工作效率不如以前的区域。由于该项目仍在正常开发中,因此我们需要确保不添加未通过PHP7检查的代码。因此,我们使用 CI 任务来运行 PHP 5PHP7 的所有测试。最终结果是什么?嗯,有两件事对我们来说有了很大的改进,一是性能,二是语言特性。

性能

当我们将 PHP7 推送到第一台服务器时,很明显我们更加关注各种图表以保持一切顺利运行。如上所述,我们一直在寻求性能改进,但实际结果令人印象深刻。我几乎立即注意到等待时间减少了一半,服务器上的 CPU 负载减少了至少 50%。我们的服务器服务速度提高了一倍,而 CPU 资源却减少了一半。

PHP 5 升级到 PHP 7 Tumblr是如何搞定的?PHP 5 升级到 PHP 7 Tumblr是如何搞定的?

这些是处理 API 服务的图表。正如您所看到的,延迟已减少一半,平均峰值负载现在低于之前的低点!

语言功能

PHP 7 还包含许多有趣的新功能,让 Tumblr 开发人员的生活更轻松。几个亮点:

  • 标量类型提示:PHP 历来在类型安全方面相当薄弱,PHP 7 引入了标量类型提示以确保传递的值对应于特定类型(string、bool、int、float 等) 。 )。
  • 返回类型声明:从现在开始,在 PHP 7 中,函数可以具有显式返回类型,这是由语言强制执行的。这减少了手动检查系统代码和函数返回值的需要。
  • 匿名类:与匿名函数(闭包)类似,匿名类在运行时创建并覆盖类,符合接口,甚至扩展其他类。这些对于记录实用程序对象(例如类)非常有用,并且对于单元测试也很有用。
  • 各种安全性和性能改进。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门