| getStructLayout(Ruby, IRubyObject) |   | 12% |   | 10% | 5 | 6 | 12 | 15 | 0 | 1 |
| initialize(ThreadContext, IRubyObject) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| initialize_copy(ThreadContext, IRubyObject) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| size(ThreadContext, IRubyObject) |  | 0% |  | 0% | 5 | 5 | 10 | 10 | 1 | 1 |
| initialize(ThreadContext, IRubyObject[]) |  | 0% |  | 0% | 5 | 5 | 9 | 9 | 1 | 1 |
| values(ThreadContext) |  | 0% |  | 0% | 2 | 2 | 6 | 6 | 1 | 1 |
| allocateStruct(ThreadContext, IRubyObject, int) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| order(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| set_layout(ThreadContext, IRubyObject, IRubyObject) |   | 50% |   | 50% | 2 | 3 | 3 | 9 | 0 | 1 |
| Struct(Ruby, RubyClass, StructLayout, IRubyObject) |   | 44% |   | 25% | 2 | 3 | 2 | 7 | 0 | 1 |
| setFieldValue(ThreadContext, IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| order(ThreadContext) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| getCachedValue(StructLayout.Member) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| initValueCache() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| initReferenceCache() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getMemory() |   | 39% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| clear(ThreadContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| putCachedValue(StructLayout.Member, IRubyObject) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| getValueCacheForWrite() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| getReferenceCache() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| putReference(StructLayout.Member, Object) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| offset_of(ThreadContext, IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| null_p(ThreadContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| Struct(Ruby) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| alignment(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| members(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| offsets(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isStruct(Ruby, RubyClass) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| offset_of(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| createStructClass(Ruby, RubyModule) |   | 84% |   | 50% | 1 | 2 | 0 | 7 | 0 | 1 |
| getStructSize(Ruby, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| allocateIn(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| allocateIn(ThreadContext, IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| allocateOut(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| allocateOut(ThreadContext, IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| allocateInOut(ThreadContext, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| allocateInOut(ThreadContext, IRubyObject, IRubyObject) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| members(ThreadContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| offsets(ThreadContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| size(ThreadContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| alignment(ThreadContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| allocateMemoryIO() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getLayout(ThreadContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| initialize(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getFieldValue(ThreadContext, IRubyObject) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| Struct(Ruby, RubyClass) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| pointer(ThreadContext) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |