php-meminfo
php-meminfo copied to clipboard
Diff two JSON files
Attempting to hunt down a memory leak using the following code:
meminfo_dump(fopen('before.json', 'w'));
echo gc_collect_cycles();
meminfo_dump(fopen('after.json', 'w'));
Now I can't easily compare those two files. A diff command would be a great addition to see what has changed.
If you have a difference between the 2 files, then there's a bug in phpMeminfo or a bug in the Zen engine.
When you cal gc_collect_cycles()
, it triggers the circular collection sooner. But in all cases, the circular collection would have collected the cycles without references.
And as phpMeminfo is built to provide information on memory leak, that is items that have still reference so they cannot be cleaned up from memory, it doesn't make much sense to list items that will be collected and cleanup automatically by the Zend engine.
So there should not be any difference between the two files.
Maybe if you tell me what you want to know exactly, we could find a real solution for you case ?
When you cal
gc_collect_cycles()
, it triggers the circular collection sooner. But in all cases, the circular collection would have collected the cycles without references.
Yeah so I've learned since opening this issue.
And as phpMeminfo is built to provide information on memory leak, that is items that have still reference so they cannot be cleaned up from memory, it doesn't make much sense to list items that will be collected and cleanup automatically by the Zend engine.
So there should not be any difference between the two files.
To find a memory leak I want to see the differences between two or more files. See the exact differences and what items are new or removed between files.
Hey @WyriHaximus ,
Thanks for your answer!
When I need to do that, I usually used the summary
analyzer and the diff
command to see which kind of objects leaked the most. But it's maybe not precise enough for your use case.
As we are using JSON files, maybe you can try some generic JSON tools, like jd
: https://github.com/josephburnett/jd#command-line-usage
It's capable of diffing two different json files.
Don't hesitate to share your experience with it, it may help others, and we could add a section in the documentation about it, if it's worth it.
That is a good one. Haven't thought of that :+1: , will give it a try and report back