【问题标题】:HipHop PHP - Issues with string concatHipHop PHP - 字符串连接问题
【发布时间】:2012-01-28 08:10:30
【问题描述】:

我在 HipHop->C++ 编译的 PHP 脚本中遇到了严重的字符串连接问题。

我的脚本严重依赖连接字符串,使用 PHP 只需 0.6 秒,使用 HipHop 编译只需 60 秒。这几乎是 10,000% 的差异!

看来是动态内存分配的问题,根据this article

他们证明了我们的怀疑。源代码编译带来了主要的一面 从 C、C++ 或 C# 等其他编译语言已知的效果: 字符串操作慢,需要 StringBuilder 功能!。

HipHop 编译的脚本在所有其他方面都快得多,速度和内存提高了大约 50%,这对我的项目很重要。

我的问题是:我可以使用什么样的技巧(在 PHP 代码中)来强制 HipHop 编译的 PHP 脚本预先分配所需的内存,或者其他什么来阻止这种会导致严重减速的模糊动态内存分配。还是有另一种巧妙的连接字符串的小方法,或者某种字符串生成器的实现?

【问题讨论】:

  • 我测试了 '$a='';for($i=0;$i
  • 当然,我给你弄一段代码。
  • 我这样编译:hphp script.php --program=AppName -t cpp -f exe -o AppName
  • 当我分离一个短代码段时,它工作正常......但作为我的 1,000 行脚本的一部分,它很慢。我在所有事情之前和之后都记录了microtime,这肯定是由于多个字符串连接造成的。但是然后将其分离到一个新脚本中就没有问题了。所以某处出了点问题,但它不在我的 PHP 代码中。
  • 好吧,你可以看到字符串连接的工作速度非常快。请将您的问题本地化或在某处(例如 ideone.com)发布完整的代码,或者......删除这个问题,因为没有人可以帮助解决这个模糊的问题:)

标签: php string memory-management concat hiphop


【解决方案1】:

HPHPc 已被弃用。尝试使用 HHVM https://github.com/facebook/hiphop-php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多