Предварительно выделять строковую память в PHP - PullRequest
1 голос
/ 02 апреля 2011

Можно ли предварительно выделить память для строки в PHP или задать для строки постоянный фиксированный размер?

У меня есть случайная строка, которая генерируется, она всегда длиной 32 символа, и в настоящее время она объединяет символ в конце строки; Я думаю, что было бы более эффективно, если бы я мог использовать строку постоянного размера.

1 Ответ

2 голосов
/ 02 апреля 2011

Вы можете использовать str_repeat(), чтобы предварительно сгенерировать строку, содержащую 32 пробела, и затем получить доступ к каждому символу следующим образом:

$string[3] = 'a';

Примечание: см. Доступ к строке и ее модификация по символу в руководстве, об этом.


Полагаю, это приведет к меньшему (пере) выделению памяти.

Но на самом деле:

  • вам не стоит беспокоиться о такой микрооптимизации ...
  • Я не уверен, как строки реализованы вPHP (вам нужно взглянуть на его исходный код) , поэтому не уверен, что эта идея будет лучше для производительности.
...