NMT = Native Memory Tracking
NMT Phase 1 tracks native memory allocations by the JVM itself
An initial approach to NMT Phase 1 includes:
1. Import Doug Lea's malloc to hotspot
2. Utilize mspace to "group" different types of objects
3. Further marking object types using spare bits in malloc header
4. Implement callsite statistics and per chunk callsite tracking (JRockit memory tracking feature)
5. Disable/Enable locking
6. mspace cleanup
Phrase 1 only tracks VM native memory usage. There are a few design changes vs. documented in description section:
1. No malloc library is imported, contine using platform's malloc implementation.
2. Native memory tracking is implemented on top of all current VM memory management systems.