pm = static
pm.max_children = 5
pm.max_requests = 500
pm.status_path = /status
$data = array();
for($i = 0; $i<1000000; $i++) {
$data[] = array(
'id' => $i
);
}
die();
/opt/php73/bin/php -a
php > while(true){ $data = array(); for($i = 0; $i<2000000; $i++) { $data[] = array( 'id' => $i ); } var_dump(memory_get_usa
ge(true)); unset($data); var_dump(memory_get_usage(true)); }
nt(822087680)
int(754974720)
int(822087680)
int(754974720)
int(822087680)
int(754974720)
int(822087680)
int(754974720)
int(822087680)
int(754974720)
int(824184832)
int(757071872)
int(824184832)
pm.max_requests int
The number of requests each child process should execute before respawning. This can be useful to work around memory leaks in 3rd party libraries. For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. Default value: 0.
[root@centos-standard-2-4-10gb ~]# ps aux | grep fpm
root 2708 0.0 0.2 208348 8732 ? Ss 10:44 0:00 php-fpm: master process (/opt/php73/etc/php-fpm.conf)
www-root 2709 0.6 4.8 390620 188216 ? S 10:44 0:00 php-fpm: pool 213.219.212.93
www-root 2710 0.6 4.8 390620 188216 ? S 10:44 0:00 php-fpm: pool 213.219.212.93
www-root 2711 0.6 4.8 390620 188216 ? S 10:44 0:00 php-fpm: pool 213.219.212.93
www-root 2712 0.6 4.8 390620 188220 ? S 10:44 0:00 php-fpm: pool 213.219.212.93
www-root 2713 0.6 4.8 390620 188220 ? S 10:44 0:00 php-fpm: pool 213.219.212.93
root 2766 0.0 0.0 112808 972 pts/1 S+ 10:44 0:00 grep --color=auto fpm
[root@centos-standard-2-4-10gb ~]# /opt/php73/bin/php-cgi -m
[PHP Modules]
bz2
calendar
cgi-fcgi
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
libxml
openssl
pcntl
pcre
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
xml
zlib
учитывая что в той теме упорно не читали что вам пишут, игнорировали собственно вопрос автора
"массив в пхп вещь тяжелая" подразумевает, что есть лучшие реализации вне пхп
вы видимо не прочитали последние 2 сообщения где я цитирую автора. ну или надо еще раз. Мне добавить нечего к прямым цитатам и моим комментариям, могу только посоветовать читать до просветления.
В чем так сказать ваши претензии?
Вы просто испытываете боль от упоминания оверхеда? ну примите нурофен
Читал, только вот автор и пришел с тем
Читаем, что писал выше: "Не вопрос, если подразумевалась, что такой функционал сам по себе тяжелый. Хотя, сравнивать массив и ассоциативный массив только по памяти, как-то странно, это разные структуры данных. Тогда уж сравнивайте обычные массивы".
Так сказать надо читать что сказал автор, а не придумывать за него, равно как не пытаться обидется на то что кто сказал о том какая то абстракция в каком либо языке ведет к накладным расходам.
равно как не пытаться обидется на то что кто сказал о том какая то абстракция в каком либо языке ведет к накладным расходам.
Если я скажу что пхп как язык с автоматическим сборщикам мусора более ресурсоемкий нежели язык где работать с памятью надо руками - вас тоже бомбанет? Не надо путать констатацию факта с претензиями.
Слово array имеет определенное значение, и если открыть документацию пхп по массивами и можно увидеть что в первом абзаце в этой доке честно написано чуваки массив у нас не массив. И сравнивать по тому что это называет одним словом вполне можно.
Автор пришел не с этим, а с "Но что-то мне подсказывает, что данную задачу можно решить куда проще и наверняка она уже давно решена"Ага. И читаем мой первый ответ который говорит что идею написать на пыхе демон с воркерами надо положить в мусорное ведро потому что делать это на пыхе будет иметь гемморой не сопоставимый с ожиданием задачи в какой нибудь очереди. И тут в теме появились вы и начали бороться с пхпфобией.
Сравнить можно вообще что угодно, главное какие выводы сделать.
Вообще не бомбит, прочтите мою цитату выше, в 3ий раз повторенную. Никаких претензий. А вот чего вы распаляетесь мне даже интересно?
Ага. И читаем мой первый ответ который говорит что идею написать на пыхе демон с воркерами надо положить в мусорное ведро потому что делать это на пыхе будет иметь гемморой не сопоставимый с ожиданием задачи в какой нибудь очереди. И тут в теме появились вы и начали бороться с пхпфобией.
Вывод блин простой. С массивами в пхп надо быть осторожнее. Они жрут много памяти. По-моему это очевидно.
Да не распаляюсь - скорее интерес что с вами не так если банальная констатация факта которую нельзя опровергнуть у вас вызывает желание защитить пхп. Вас представители других стэков в серверной бьют, или чего?
констатация минусов той или иной реализации не является наездом на реализацию.
Чтобы утечка проявила себя более явно установил memory_limit = 1G