Пытаюсь уже некоторое время разобраться - как PHP выделяет оперативную память и как ей можно оперировать. Появился такой вопрос. Точнее, вопросов и странностей просто море.. ну вот, например: PHP: <?php $mem0 = memory_get_usage(); echo "Script memory: " . ( memory_get_usage() - $mem0 - sizeof( $mem0 ) ). " bytes"; ?> Результат выполнения кода: Код (Text): Script memory: 55 bytes Как так может быть? Откуда взялись эти 55 байт? Такое ощущение, что от меня ускользает что-то настолько нелепое и очевидное.. мне просто стыдно. Если что - не пинайте сильно, просто подтолкните в нужном направлении.. самостоятельно я это направление, видимо, найти не могу
Ссори.. Только что дошло, что функция sizeof() не возвращает размер переменной Подскажите тогда, пожалуйста, как можно узнать сколько PHP выделелил памяти под ту или иную переменную? Всмысле, есть ли подобные функции?
Эта константа появилась в PHP 5.0.5 (если считать пятую ветку), у меня же - 5.0.0.. Так что мне её не посмотреть Но int явно не может быть размером в 56 байт! Тогда откуда взялось всё остальное? PHP: <?php $mem0 = memory_get_usage(); echo memory_get_usage() - $mem0; ?> Код (Text): 56
Код (Text): typedef union _zvalue_value { long lval; /* long value */ double dval; /* double value */ struct { char *val; int len; } str; HashTable *ht; /* hash table value */ zend_object_value obj; } zvalue_value; struct _zval_struct { /* Variable information */ zvalue_value value; /* value */ zend_uint refcount; zend_uchar type; /* active type */ zend_uchar is_ref; };