HipHop PHP - 字符串连接问题

Posted

技术标签:

【中文标题】HipHop PHP - 字符串连接问题【英文标题】:HipHop PHP - Issues with string concat 【发布时间】: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)发布完整的代码,或者......删除这个问题,因为没有人可以帮助解决这个模糊的问题:) 【参考方案1】:

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

【讨论】:

以上是关于HipHop PHP - 字符串连接问题的主要内容,如果未能解决你的问题,请参考以下文章

Blob 存储 - 连接字符串不起作用 php

正确的 php 中的 mssql 连接字符串

如果 int 与 php 中的字符串连接会发生啥?

字符串和算术运算的 PHP 连接

PHP字符串数字连接搞砸了

为啥要一个句号,“。”而不是加号“+”,用于 PHP 中的字符串连接?