我在 HipHop->C++ 编译的 PHP 脚本中遇到了字符串连接的严重问题。
我的脚本严重依赖连接字符串,使用 PHP 只需 0.6 秒,使用 HipHop 编译只需 60 秒。这几乎是10,000%的差异!
根据这篇文章,似乎是动态内存分配的问题:
他们证明了我们的怀疑。源代码编译带来了其他编译语言(如 C、C++ 或 C#)已知的主要副作用:字符串操作速度慢,以及需要 StringBuilder 功能!
HipHop 编译的脚本在所有其他方面都快得多,速度和内存提高了大约 50%,这对我的项目很重要。
我的问题是:我可以(在 PHP 代码中)使用什么样的技巧来强制 HipHop 编译的 PHP 脚本预先分配所需的内存,或者其他什么来阻止这种导致严重减速的模糊动态内存分配。还是有另一种连接字符串的聪明小方法,或者某种字符串构建器实现?