BitOne / php-meminfo

PHP extension to get insight about memory usage
MIT License
1.08k stars 78 forks source link

meminfo_objects_summary VS meminfo_info_dump #37

Closed raphaelvoisin closed 6 years ago

raphaelvoisin commented 7 years ago

Hello,

I’m probably missing something, but I'm in a case in which meminfo_objects_summary output shows many objects that I cannot find in meminfo_info_dump dump.

Here are my 5 first meminfo_objects_summary dump lines:

Instances count by class: rank #instances class ----------------------------------------------------------------- 1 9288 DateTime 2 5957 AppBundle\Model\ProductOfferFeedImportExtractedProductOffer 3 5957 AppBundle\Model\ProductOffer 4 208 Symfony\Component\Console\Input\InputOption 5 107 Symfony\Component\Console\Input\InputDefinition

And when querying the meminfo_info_dump dump, no such item found: devuser@osboxes:~/meminfo/php-meminfo/analyzer$ bin/analyzer query -f "class~ProductOfferFeedImportExtractedProductOffer" -v data/mem_dump_0.json +----------+-----------+----------+ | Item ids | Item data | Children | +----------+-----------+----------+

In addition: my meminfo_info_dump dump size is only 1,2M, and it should be really more...

Am I missing somthing obvious of how meminfo works ?

BitOne commented 6 years ago

Hello @raphaelvoisin ,

The way the summary used to work was to go through all the objects buckets in the Zend Engine memory. So even objects that were going to be freed from memory were listed by the summary.

The dump works differently by going through all variables declared in all execution frames. So it dumps only items that won't be freed from memory.

With the new version (v1.0.0), the summary is now done from the dump through an analyzer, so things are far more coherent ;)