从PHP访问密集型函数的速度最快

本文关键字:速度 函数 PHP 访问 密集型 | 更新日期: 2023-09-27 17:53:17

背景
我有一个托管RESTful API的PHP服务器,当函数/API/GenerateImage被调用时,它会返回一个图像。我需要最快和最低内存使用方法来实现这一点。

想法
我可以想出几种方法来实现这一点:

  1. 完全用PHP编写——图像需要大量的字节操作,用PHP这样做感觉很糟糕
  2. 编写一个持续运行的C#程序,并使用API生成图像,并通过PHP将响应流复制到客户端-需要避免不必要的套接字连接的开销
  3. 编写一个C/C++命令行程序,当被调用时,该程序会生成图像并将其存储在一个文件中,PHP会读取并发送该图像-需要避免启动程序、写入文件然后读取文件所带来的开销
  4. 用C/C++编写它,并使用PHP库包装器直接从PHP调用函数——这似乎是最快的,但对单个函数来说是最困难的

从PHP访问密集型函数的速度最快

对我来说,两个最明显的解决方案似乎不在您的选项集中:

  • 使用PHP的GD扩展
  • 使用imagemagik

这些是否实用取决于你对图像的具体处理。如果它们只是静态图像,您不需要任何东西,只需将它们作为文件从web服务器中提供即可。您需要一些代码来生成图像,这意味着图像是动态生成的。

如果这两者都不适合,那么我会说:你的最后一个(第四个(解决方案将是最快的,但第三个解决方案的修改版本将是最简单的:编写一个命令行程序,将图像数据返回到stdout,并从PHP调用它。