> =A0{} # create a hash object
> =A0require 'pp'
> =A0pp RubyVM::profile_get
>
> #=3D> result:
>> {:vm_send=3D>108,
>> =A0:vm_send_fromc=3D>134,
>> =A0:vm_send_hit_inlinecache=3D>0,
>> =A0:vm_send_miss_inlinecache=3D>108,
>> =A0:vm_send_hit_globalcache=3D>133,
>> =A0:vm_send_miss_globalcache=3D>258,
>> =A0:vm_send_type_iseq=3D>0,
>> =A0:vm_send_type_cfunc=3D>108,
>> =A0:vm_send_type_attrset=3D>0,
>> =A0:vm_send_type_ivar=3D>0,
>> =A0:vm_send_type_bmethod=3D>0,
>> =A0:vm_send_type_zsuper=3D>0,
>> =A0:vm_send_type_undef=3D>0,
>> =A0:vm_send_type_notimplemented=3D>0,
>> =A0:vm_send_type_optimized=3D>0,
>> =A0:vm_send_type_missing=3D>0,
>> =A0:vm_yield=3D>0,
>> =A0:vm_yield_fromc=3D>20,
>> =A0:vm_yield_type_iseq=3D>20,
>> =A0:vm_yield_type_cfunc=3D>0,
>> =A0:vm_stateversion_increment=3D>428,
>> =A0:thread_start=3D>0,
>> =A0:thread_terminate=3D>0,
>> =A0:thread_schedule=3D>1,
>> =A0:thread_gvl_acquire=3D>8,
>> =A0:thread_gvl_release=3D>7,
>> =A0:fiber_switch=3D>0,
>> =A0:object_create=3D>5609,
>> =A0:object_string_create=3D>1379,
>> =A0:object_array_create=3D>694,
>> =A0:object_hash_create=3D>5,
>> =A0:object_proc_create=3D>0,
>> =A0:object_env_create=3D>1,
>> =A0:gc_mark=3D>0,
>> =A0:gc_sweep=3D>0,
>> =A0:memory_malloc=3D>4884,
>> =A0:memory_free=3D>1140,
>> =A0:memory_realloc=3D>293}
>
> Any comments?

In general, too many profile enabling make inaccuracy. It's better to
enable a counter one by one, not all at once.