Goals of the Object Model
This object model facilitates efficient decomposition of objects into their member components. It enhances operational performance by providing very fast and deterministic access to multiply inherited interface members (abstract members and constant fields) and singly inherited virtual methods, while conforming to the current Java language and VM specification.
The Microsoft VM Object Model also provides very low per-object overhead while still containing information required for distinguishing between objects and arrays, synchronizing objects through monitors and Wait and Notify functionality. This additional information is allocated in a "lazy" fashion, requiring additional overhead only as necessary.
Operations that this model optimizes include:
- Fast resolution of an object's interface vtables, which you can use to access interface methods quickly and efficiently.
- Accessing data fields in the object.
- Accessing virtual methods of the class or interface hierarchy.
- Entering an object's monitor.
- Blocking a thread on an object until that object has been "notified."