【问题标题】:Parellal processing in PHPPHP中的并行处理
【发布时间】:2014-01-25 03:03:54
【问题描述】:

我用 php 编写了一个高性能脚本。这需要 30 毫秒的时间来执行。

现在我已经使这个脚本更可密封,所以我在以下几点上做了 rnd。我正在寻找的是对代码块进行并行处理,以最大限度地减少 30 毫秒到 15 毫秒的时间以及更多的分发时间,以便脚本可以服务更多的请求。

  1. 齿轮人

我使用它的异步任务处理程序在 gearman 上完成了一些 rnd,我可以在 php 代码中实现并行任务。

  1. C++

第二个选项是将整个 php 脚本转换为 c++ 扩展,这有助于改进脚本,在 c++ 中我也可以使用线程。

我正在计划所有这些,所以我需要帮助他们是我可以扩展脚本的其他方式吗?

c++ 可以帮助并行处理吗?

【问题讨论】:

标签: php c++ php-extension gearman


【解决方案1】:

您可以尝试将您的工作负载分块,并让多个齿轮工作人员运行您的任务(并行)。不知道它是否会更快。

【讨论】:

  • Gearman 无法维持持久连接。不像 apache 那样维护持久连接。
【解决方案2】:

是的,您可以轻松地将您的 PHP 算法转换为 C++ 代码,我一直使用我们的 PHP 太慢的软件来这样做。事实上,我已经为它创建了一个有用的库,这使得这种转换非常简单:参见http://www.php-cpp.com

仅从 PHP 转换到 C++ 就已经大大提升了性能。通过将算法从 PHP 转换为原生 C++,从 30 毫秒到 15 毫秒一点也不稀奇。如果仅此还不够,您可以启动多个线程。我不能建议您如何做到这一点,因为我必须知道您的算法才能查看它们是否适合在线程中拆分。但是 C++11 标准库现在带有一个线程类,这使得这变得简单。

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 2023-03-23
    • 2012-12-18
    • 1970-01-01
    • 2011-08-31
    • 2013-05-24
    • 2012-12-16
    • 2013-07-14
    • 1970-01-01
    相关资源
    最近更新 更多