Detecting memory fragmentation problem in a process
What are the various mechanisms using which we can detect if a process ex开发者_开发知识库ecution is leading to memory fragmentation?
Are there any tools available for the same? Suggestion for tools which work with 'C' code and can run on Windows, Linux and VxWorks will be helpful.
Just as a suggestion, you may want to try Valgrind. I'm not certain it's what you're looking for, but it may come in handy.
http://valgrind.org/
There is a maxfreeblocksize in vxworks, if it keeps gettin lower and lower its an indication its getting fragmented
On linux you can see the output of:
cat /proc/buddyinfo
It tells how many pages of a given order are available. If there are very few higher order pages available and mostly lower order pages are available and it indicates your system memory is quite fragmented. Look for the "Normal" entry.
See proc.txt
精彩评论