【问题标题】:Fastest access of intensive function from PHP?从 PHP 访问密集函数的最快速度?
【发布时间】:2016-06-29 04:13:51
【问题描述】:

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

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

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

【问题讨论】:

标签: c# php c++ c performance


【解决方案1】:

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

  • 使用 PHP 的 GD 扩展。
  • 使用 imagemagick。

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

如果这些都不适合,那么我会说:您的最后(第 4 个)解决方案将是最快的,但您的第 3 个解决方案的修改版本将是最简单的:编写一个将图像数据返回到标准输出的命令行程序, 并从 PHP 中调用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 2018-10-24
    相关资源
    最近更新 更多