Swoole Buffer enable developers managing memory like C language without worrying about memory allocation and release.
The memory allocated by Swoole\Buffer is not shared memory and can not be accessed by multiple processes.
<?php $buffer = new Swoole\Buffer(); $buffer->append(str_repeat("A", 10)); $buffer->append(str_repeat("B", 20)); $buffer->append(str_repeat("C", 30)); var_dump($buffer);
Swoole\Buffer->__construct(int $size = 128)
Fixed size memory blocks allocation.
Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
Swoole\Buffer->substr(int $offset, int $length = -1, bool $remove = false)
Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
If $remove is set to be true and $offset is set to be 0, the data will be removed from the buffer. The memory for storing the data will be released when the buffer object is deconstructed.
The memory buffer will be reset.
Expand the size of memory buffer.
Swoole\Buffer->write(int $offset, string $data)
Write data to the memory buffer. The memory allocated for the buffer will not be changed.
Swoole\Buffer->read(int $offset, int $length)
Read data from the memory buffer based on offset and length.
Release the memory to OS which is not used by the memory buffer.