0

我有一个需要由 PHP 解释的缓冲区,但是随后在缓冲区上使用许多 substr 被证明是非常慢且 CPU 密集型的,可能是因为 substr 创建了子字符串的新副本。

我需要通过以下方式在缓冲区中前进:

移动 X 的偏移量(可变字节数)。或从头开始删除 X 个字节

PHP中是否有任何容器可以让我做这样的事情?

示例(伪代码)

while( !done )
{
   $itemSize = unpack( ?, $buffer );
   $item = substr($buffer, $itemSize );
   $done = doSomething( $item );
   $buffer = $item;
}

谢谢

4

1 回答 1

0

在字节级别上工作实际上并不是 PHP 的目的。PHP 管理内存的方式比你想象的要复杂得多。它适用于大量参考资料,即使您不使用&.

我非常怀疑这种缓慢来自于做很多事情substr,我非常怀疑使用 PHP 在字节级别管理内存会对此有所帮助。

于 2013-03-04T19:41:55.877 回答