0

我是 API 开发的新手,我刚刚开始根据我的项目要求
1 制作我的项目的 POC。我将根据该请求收到来自用户的请求。
2. 对于我从用户那里收到的每个请求,我必须使用他们提供的 API(至少 8 到 10 个)请求其他几个提供商。
3. 从我的数据库中获取一些信息。
4. 将其他服务器的所有响应和我从 My DB 获取的信息转换为 JSON 并将其返回给请求它的用户。

我在核心 PHP 中编写了这段代码,但性能达不到标准,响应用户大约需要 2.5 秒,这真的很慢。如果我选择任何其他语言或仅坚持使用 PHP 但使用我应该遵循的特定框架和实践可以帮助我提高 API 的性能,哪种语言会更好地创建这样的 API?

4

2 回答 2

5

我建议采用三个 M 的绩效方法:测量、测量和测量。

通过在这个堆栈中进行一些工作,您可能可以改进很多;它有点简单,合乎逻辑,并且没有太多活动部件。

首先测量 SQL 查询运行时、应用程序格式化 JSON 响应所需的时间,以及应用程序从开始到完成返回响应所需的时间。您可以使用简单的符合 PSR 的日志记录包(如monolog )来实现。

了解这些测量值将帮助您回答以下问题:

  • 我的应用程序慢还是托管?
  • 我的数据库慢吗?我应该查看列索引吗?
  • 我的网络慢吗?我应该将应用程序托管在离客户更近的地方吗?
  • 我的应用程序路由器慢吗?我应该缓存路由器吗(如果它使用 \Reflection 类,它的性能可能特别差)

通过查看应用程序分析,您可以获得比文件中的时间戳和日志消息更详细的信息。有一个特别好的SO 帖子概述了如何解决这个问题。

tldr; 不要只是学习一种新的语言/堆栈,因为它可能会更快。 如果你真的想要,我会看看像 Go 这样的语言(据说它有点容易从 PHP 背景迁移到)。但只有当它对您的应用程序和业务做出正确决定时才这样做;引入新技术意味着您也需要在几个月内对其进行维护。

于 2016-01-10T03:24:44.107 回答
0

如果这很慢,可能是由于您的信息提供服务的响应时间增加了。所以使用不同的语言可能没什么用。考虑存储/缓存响应,这样就不会每次都进行网络往返。

于 2016-01-10T01:39:36.047 回答