Skip to content

Instantly share code, notes, and snippets.

@zaru
Last active September 29, 2023 00:06
Show Gist options
  • Save zaru/042047c0a6eb8053db0c466185f5bbca to your computer and use it in GitHub Desktop.
Save zaru/042047c0a6eb8053db0c466185f5bbca to your computer and use it in GitHub Desktop.
Docker ruby:3.3.0-preview2-slim-bullseye, Rails7.0.6
{
:inline_code_size=>14144068,
:outlined_code_size=>14143076,
:freed_page_count=>0,
:freed_code_size=>0,
:live_page_count=>1727,
:code_gc_count=>0,
:code_region_size=>28291072,
:yjit_alloc_size=>43781717,
:all_stats=>true,
:exec_instruction=>840871115,
:send_keywords=>21758,
:send_kw_splat=>61972,
:send_args_splat_super=>0,
:send_iseq_zsuper=>22747,
:send_block_arg=>170336,
:send_ivar_set_method=>243,
:send_zsuper_method=>13781,
:send_undef_method=>0,
:send_optimized_method=>0,
:send_optimized_method_call=>0,
:send_optimized_method_block_call=>841,
:send_call_block=>0,
:send_call_kwarg=>211,
:send_call_multi_ractor=>0,
:send_missing_method=>0,
:send_refined_method=>1008,
:send_cfunc_ruby_array_varg=>169904,
:send_cfunc_argc_mismatch=>0,
:send_cfunc_toomany_args=>0,
:send_cfunc_tracing=>0,
:send_cfunc_kwargs=>0,
:send_attrset_kwargs=>0,
:send_iseq_tailcall=>0,
:send_iseq_arity_error=>32609,
:send_iseq_only_keywords=>0,
:send_iseq_kwargs_req_and_opt_missing=>0,
:send_iseq_kwargs_mismatch=>0,
:send_iseq_has_rest=>356878,
:send_iseq_has_post=>0,
:send_iseq_has_kwrest=>3845,
:send_iseq_has_no_kw=>21158,
:send_iseq_accepts_no_kwarg=>0,
:send_iseq_materialized_block=>0,
:send_iseq_splat_with_opt=>51222,
:send_iseq_splat_with_kw=>0,
:send_iseq_missing_optional_kw=>142914,
:send_iseq_too_many_kwargs=>0,
:send_not_implemented_method=>0,
:send_getter_arity=>0,
:send_se_cf_overflow=>0,
:send_se_protected_check_failed=>0,
:send_splatarray_length_not_equal=>0,
:send_splat_not_array=>0,
:send_args_splat_non_iseq=>764901,
:send_args_splat_cfunc=>136260,
:send_iseq_ruby2_keywords=>124207,
:send_send_not_imm=>0,
:send_send_wrong_args=>0,
:send_send_null_mid=>0,
:send_send_null_cme=>0,
:send_send_nested=>0,
:send_send_chain=>484,
:send_send_chain_string=>0,
:send_send_chain_not_string=>0,
:send_send_chain_not_sym=>0,
:send_send_chain_not_string_or_sym=>217,
:send_send_getter=>34,
:send_send_builtin=>0,
:send_bmethod_ractor=>0,
:send_bmethod_block_arg=>0,
:traced_cfunc_return=>1,
:invokesuper_me_changed=>25795,
:invokesuper_block=>14811,
:invokeblock_none=>0,
:invokeblock_iseq_arg0_splat=>2312,
:invokeblock_iseq_block_changed=>1954,
:invokeblock_iseq_tag_changed=>4688,
:invokeblock_ifunc=>28984,
:invokeblock_proc=>3180,
:invokeblock_symbol=>12063,
:leave_se_interrupt=>2302,
:leave_interp_return=>26301610,
:leave_start_pc_non_zero=>120624,
:getivar_se_self_not_heap=>0,
:getivar_idx_out_of_range=>0,
:getivar_megamorphic=>131250,
:setivar_se_self_not_heap=>0,
:setivar_idx_out_of_range=>0,
:setivar_val_heapobject=>0,
:setivar_name_not_mapped=>0,
:setivar_not_object=>0,
:setivar_frozen=>0,
:oaref_argc_not_one=>0,
:oaref_arg_not_fixnum=>0,
:opt_getinlinecache_miss=>111,
:expandarray_splat=>1205,
:expandarray_postarg=>0,
:expandarray_not_array=>1363,
:expandarray_rhs_too_small=>3755,
:gbpp_block_param_modified=>11225,
:gbpp_block_handler_not_iseq=>0,
:binding_allocations=>1891751,
:binding_set=>0,
:vm_insns_count=>68810976,
:compiled_iseq_count=>7557,
:compiled_block_count=>82950,
:compiled_branch_count=>152411,
:compilation_failure=>0,
:block_next_count=>24727,
:defer_count=>25888,
:freed_iseq_count=>92,
:exit_from_branch_stub=>0,
:invalidation_count=>3547,
:invalidate_method_lookup=>2262,
:invalidate_bop_redefined=>0,
:invalidate_ractor_spawn=>0,
:invalidate_constant_state_bump=>434,
:invalidate_constant_ic_fill=>851,
:constant_state_bumps=>0,
:exec_mem_non_bump_alloc=>1755,
:num_gc_obj_refs=>74219,
:exit_nop=>0,
:exit_getlocal=>0,
:exit_setlocal=>0,
:exit_getblockparam=>0,
:exit_setblockparam=>372,
:exit_getblockparamproxy=>28964,
:exit_getspecial=>0,
:exit_setspecial=>0,
:exit_getinstancevariable=>95231,
:exit_setinstancevariable=>6,
:exit_getclassvariable=>0,
:exit_setclassvariable=>0,
:exit_opt_getconstant_path=>4331,
:exit_getconstant=>0,
:exit_setconstant=>0,
:exit_getglobal=>0,
:exit_setglobal=>0,
:exit_putnil=>0,
:exit_putself=>0,
:exit_putobject=>0,
:exit_putspecialobject=>0,
:exit_putstring=>0,
:exit_concatstrings=>0,
:exit_anytostring=>0,
:exit_toregexp=>0,
:exit_intern=>0,
:exit_newarray=>0,
:exit_newarraykwsplat=>0,
:exit_duparray=>0,
:exit_duphash=>0,
:exit_expandarray=>6323,
:exit_concatarray=>0,
:exit_splatarray=>0,
:exit_newhash=>0,
:exit_newrange=>0,
:exit_pop=>0,
:exit_dup=>0,
:exit_dupn=>0,
:exit_swap=>0,
:exit_opt_reverse=>0,
:exit_topn=>0,
:exit_setn=>0,
:exit_adjuststack=>0,
:exit_defined=>0,
:exit_checkmatch=>638,
:exit_checkkeyword=>0,
:exit_checktype=>0,
:exit_defineclass=>1285,
:exit_definemethod=>0,
:exit_definesmethod=>0,
:exit_send=>586425,
:exit_opt_send_without_block=>2861835,
:exit_objtostring=>1375,
:exit_opt_str_freeze=>0,
:exit_opt_nil_p=>3157,
:exit_opt_str_uminus=>0,
:exit_opt_newarray_max=>0,
:exit_opt_newarray_min=>0,
:exit_invokesuper=>333826,
:exit_invokeblock=>80880,
:exit_leave=>2302,
:exit_throw=>84882,
:exit_jump=>0,
:exit_branchif=>3,
:exit_branchunless=>2,
:exit_branchnil=>0,
:exit_once=>23878,
:exit_opt_case_dispatch=>0,
:exit_opt_plus=>16,
:exit_opt_minus=>0,
:exit_opt_mult=>2,
:exit_opt_div=>0,
:exit_opt_mod=>0,
:exit_opt_eq=>472112,
:exit_opt_neq=>140,
:exit_opt_lt=>0,
:exit_opt_le=>0,
:exit_opt_gt=>0,
:exit_opt_ge=>2,
:exit_opt_ltlt=>87,
:exit_opt_and=>2,
:exit_opt_or=>0,
:exit_opt_aref=>72226,
:exit_opt_aset=>3190,
:exit_opt_aset_with=>11,
:exit_opt_aref_with=>7263,
:exit_opt_length=>0,
:exit_opt_size=>22,
:exit_opt_empty_p=>5151,
:exit_opt_succ=>0,
:exit_opt_not=>0,
:exit_opt_regexpmatch2=>40,
:exit_invokebuiltin=>0,
:exit_opt_invokebuiltin_delegate=>92,
:exit_opt_invokebuiltin_delegate_leave=>0,
:exit_getlocal_WC_0=>0,
:exit_getlocal_WC_1=>0,
:exit_setlocal_WC_0=>8735,
:exit_setlocal_WC_1=>21077,
:exit_putobject_INT2FIX_0_=>0,
:exit_putobject_INT2FIX_1_=>0,
:exit_trace_nop=>0,
:exit_trace_getlocal=>0,
:exit_trace_setlocal=>0,
:exit_trace_getblockparam=>0,
:exit_trace_setblockparam=>0,
:exit_trace_getblockparamproxy=>0,
:exit_trace_getspecial=>0,
:exit_trace_setspecial=>0,
:exit_trace_getinstancevariable=>0,
:exit_trace_setinstancevariable=>0,
:exit_trace_getclassvariable=>0,
:exit_trace_setclassvariable=>0,
:exit_trace_opt_getconstant_path=>0,
:exit_trace_getconstant=>0,
:exit_trace_setconstant=>0,
:exit_trace_getglobal=>0,
:exit_trace_setglobal=>0,
:exit_trace_putnil=>0,
:exit_trace_putself=>0,
:exit_trace_putobject=>0,
:exit_trace_putspecialobject=>0,
:exit_trace_putstring=>0,
:exit_trace_concatstrings=>0,
:exit_trace_anytostring=>0,
:exit_trace_toregexp=>0,
:exit_trace_intern=>0,
:exit_trace_newarray=>0,
:exit_trace_newarraykwsplat=>0,
:exit_trace_duparray=>0,
:exit_trace_duphash=>0,
:exit_trace_expandarray=>0,
:exit_trace_concatarray=>0,
:exit_trace_splatarray=>0,
:exit_trace_newhash=>0,
:exit_trace_newrange=>0,
:exit_trace_pop=>0,
:exit_trace_dup=>0,
:exit_trace_dupn=>0,
:exit_trace_swap=>0,
:exit_trace_opt_reverse=>0,
:exit_trace_topn=>0,
:exit_trace_setn=>0,
:exit_trace_adjuststack=>0,
:exit_trace_defined=>0,
:exit_trace_checkmatch=>0,
:exit_trace_checkkeyword=>0,
:exit_trace_checktype=>0,
:exit_trace_defineclass=>0,
:exit_trace_definemethod=>0,
:exit_trace_definesmethod=>0,
:exit_trace_send=>0,
:exit_trace_opt_send_without_block=>0,
:exit_trace_objtostring=>0,
:exit_trace_opt_str_freeze=>0,
:exit_trace_opt_nil_p=>0,
:exit_trace_opt_str_uminus=>0,
:exit_trace_opt_newarray_max=>0,
:exit_trace_opt_newarray_min=>0,
:exit_trace_invokesuper=>0,
:exit_trace_invokeblock=>0,
:exit_trace_leave=>0,
:exit_trace_throw=>0,
:exit_trace_jump=>0,
:exit_trace_branchif=>0,
:exit_trace_branchunless=>0,
:exit_trace_branchnil=>0,
:exit_trace_once=>0,
:exit_trace_opt_case_dispatch=>0,
:exit_trace_opt_plus=>0,
:exit_trace_opt_minus=>0,
:exit_trace_opt_mult=>0,
:exit_trace_opt_div=>0,
:exit_trace_opt_mod=>0,
:exit_trace_opt_eq=>0,
:exit_trace_opt_neq=>0,
:exit_trace_opt_lt=>0,
:exit_trace_opt_le=>0,
:exit_trace_opt_gt=>0,
:exit_trace_opt_ge=>0,
:exit_trace_opt_ltlt=>0,
:exit_trace_opt_and=>0,
:exit_trace_opt_or=>0,
:exit_trace_opt_aref=>0,
:exit_trace_opt_aset=>0,
:exit_trace_opt_aset_with=>0,
:exit_trace_opt_aref_with=>0,
:exit_trace_opt_length=>0,
:exit_trace_opt_size=>0,
:exit_trace_opt_empty_p=>0,
:exit_trace_opt_succ=>0,
:exit_trace_opt_not=>0,
:exit_trace_opt_regexpmatch2=>0,
:exit_trace_invokebuiltin=>0,
:exit_trace_opt_invokebuiltin_delegate=>0,
:exit_trace_opt_invokebuiltin_delegate_leave=>0,
:exit_trace_getlocal_WC_0=>0,
:exit_trace_getlocal_WC_1=>0,
:exit_trace_setlocal_WC_0=>0,
:exit_trace_setlocal_WC_1=>0,
:exit_trace_putobject_INT2FIX_0_=>0,
:exit_trace_putobject_INT2FIX_1_=>0,
:object_shape_count=>7116,
:total_insns_count=>904976208,
:ratio_in_yjit=>92.39637734211018,
:side_exit_count=>4705883,
:total_exit_count=>31007493,
:avg_len_in_yjit=>26.966553922950173
}
{
:inline_code_size=>20715820,
:outlined_code_size=>16750664,
:freed_page_count=>0,
:freed_code_size=>0,
:live_page_count=>2535,
:code_region_size=>41529344,
:yjit_alloc_size=>41018252,
:vm_insns_count=>10283583,
:all_stats=>true,
:yjit_insns_count=>1020739210,
:send_keywords=>0,
:send_kw_splat=>64930,
:send_args_splat_super=>0,
:send_iseq_zsuper=>26525,
:send_block_arg=>245321,
:send_ivar_set_method=>1245,
:send_zsuper_method=>12585,
:send_undef_method=>0,
:send_optimized_method=>0,
:send_optimized_method_call=>0,
:send_optimized_method_block_call=>825,
:send_call_block=>0,
:send_call_kwarg=>211,
:send_call_multi_ractor=>0,
:send_missing_method=>0,
:send_refined_method=>961,
:send_cfunc_ruby_array_varg=>740181,
:send_cfunc_argc_mismatch=>0,
:send_cfunc_toomany_args=>0,
:send_cfunc_tracing=>0,
:send_cfunc_kwargs=>0,
:send_cfunc_splat_with_kw=>0,
:send_cfunc_splat_send=>0,
:send_attrset_kwargs=>0,
:send_iseq_tailcall=>0,
:send_iseq_arity_error=>32106,
:send_iseq_only_keywords=>0,
:send_iseq_kwargs_req_and_opt_missing=>0,
:send_iseq_kwargs_mismatch=>0,
:send_iseq_has_post=>0,
:send_iseq_has_kwrest=>39345,
:send_iseq_has_no_kw=>33342,
:send_iseq_accepts_no_kwarg=>0,
:send_iseq_materialized_block=>44037,
:send_iseq_splat_with_opt=>0,
:send_iseq_splat_with_kw=>2656,
:send_iseq_missing_optional_kw=>187716,
:send_iseq_too_many_kwargs=>0,
:send_not_implemented_method=>0,
:send_getter_arity=>0,
:send_args_splat_non_iseq=>0,
:send_args_splat_ivar=>39798,
:send_args_splat_attrset=>0,
:send_args_splat_bmethod=>1346,
:send_args_splat_aref=>0,
:send_args_splat_aset=>0,
:send_args_splat_opt_call=>4581,
:send_args_splat_cfunc_var_args=>134139,
:send_args_splat_cfunc_zuper=>163564,
:send_args_splat_cfunc_ruby2_keywords=>51680,
:send_iseq_splat_arity_error=>0,
:send_splat_too_long=>0,
:send_iseq_ruby2_keywords=>134971,
:send_send_not_imm=>0,
:send_send_wrong_args=>0,
:send_send_null_mid=>0,
:send_send_null_cme=>0,
:send_send_nested=>0,
:send_send_chain_string=>0,
:send_send_chain_not_string_or_sym=>212,
:send_send_getter=>34,
:send_send_builtin=>0,
:send_iseq_has_rest_and_captured=>414,
:send_iseq_has_rest_and_splat=>0,
:send_iseq_has_rest_and_kw_supplied=>4257,
:send_iseq_has_rest_opt_and_block=>244,
:send_bmethod_ractor=>0,
:send_bmethod_block_arg=>0,
:invokesuper_defined_class_mismatch=>38254,
:invokesuper_kw_splat=>25280,
:invokesuper_kwarg=>21165,
:invokesuper_megamorphic=>852,
:invokesuper_no_cme=>12,
:invokesuper_no_me=>0,
:invokesuper_not_iseq_or_cfunc=>4754,
:invokesuper_refinement=>0,
:invokeblock_megamorphic=>25943,
:invokeblock_none=>0,
:invokeblock_iseq_arg0_optional=>0,
:invokeblock_iseq_arg0_has_kw=>0,
:invokeblock_iseq_arg0_args_splat=>1788,
:invokeblock_iseq_arg0_not_array=>0,
:invokeblock_iseq_arg0_wrong_len=>0,
:invokeblock_ifunc_args_splat=>0,
:invokeblock_ifunc_kw_splat=>0,
:invokeblock_proc=>22335,
:invokeblock_symbol=>15494,
:guard_send_block_arg_type=>0,
:guard_send_klass_megamorphic=>0,
:guard_send_se_cf_overflow=>0,
:guard_send_se_protected_check_failed=>0,
:guard_send_splatarray_length_not_equal=>55,
:guard_send_splatarray_last_ruby_2_keywords=>232,
:guard_send_splat_not_array=>0,
:guard_send_send_chain=>0,
:guard_send_send_chain_not_string=>0,
:guard_send_send_chain_not_sym=>0,
:guard_send_iseq_has_rest_and_splat_not_equal=>0,
:guard_send_is_a_class_mismatch=>7834,
:guard_send_instance_of_class_mismatch=>0,
:guard_send_interrupted=>37708,
:guard_send_not_fixnums=>10383,
:guard_send_not_string=>0,
:guard_send_respond_to_mid_mismatch=>0,
:guard_invokesuper_me_changed=>0,
:guard_invokeblock_tag_changed=>0,
:guard_invokeblock_iseq_block_changed=>0,
:traced_cfunc_return=>1,
:leave_se_interrupt=>2857,
:leave_interp_return=>24791835,
:getivar_se_self_not_heap=>0,
:getivar_idx_out_of_range=>0,
:getivar_megamorphic=>0,
:getivar_not_heap=>0,
:setivar_se_self_not_heap=>0,
:setivar_idx_out_of_range=>0,
:setivar_val_heapobject=>0,
:setivar_name_not_mapped=>0,
:setivar_not_heap=>0,
:setivar_frozen=>0,
:setivar_megamorphic=>0,
:definedivar_not_heap=>0,
:definedivar_megamorphic=>0,
:setlocal_wb_required=>0,
:opt_plus_overflow=>0,
:opt_minus_overflow=>0,
:opt_mult_overflow=>0,
:opt_mod_zero=>0,
:opt_div_zero=>0,
:lshift_amt_changed=>0,
:lshift_overflow=>0,
:opt_aref_argc_not_one=>0,
:opt_aref_arg_not_fixnum=>0,
:opt_aref_not_array=>0,
:opt_aref_not_hash=>0,
:opt_aset_not_array=>0,
:opt_aset_not_fixnum=>0,
:opt_aset_not_hash=>0,
:opt_aref_with_qundef=>4544,
:opt_case_dispatch_megamorphic=>0,
:opt_getconstant_path_ic_miss=>116,
:opt_getconstant_path_no_ic_entry=>3833,
:opt_getconstant_path_multi_ractor=>0,
:expandarray_splat=>1532,
:expandarray_postarg=>0,
:expandarray_not_array=>687,
:expandarray_comptime_not_array=>1023,
:expandarray_chain_max_depth=>0,
:gbp_wb_required=>0,
:gbpp_unsupported_type=>5172,
:gbpp_block_param_modified=>2905,
:gbpp_block_handler_not_none=>0,
:gbpp_block_handler_not_iseq=>0,
:gbpp_block_handler_not_proc=>0,
:branchif_interrupted=>765,
:branchunless_interrupted=>2,
:branchnil_interrupted=>0,
:jump_interrupted=>0,
:objtostring_not_string=>0,
:binding_allocations=>0,
:binding_set=>0,
:compiled_iseq_entry=>4835,
:compiled_iseq_count=>7379,
:compiled_blockid_count=>75600,
:compiled_block_count=>110995,
:compiled_branch_count=>215451,
:compile_time_ns=>3970052717,
:compilation_failure=>0,
:block_next_count=>101536,
:defer_count=>34649,
:defer_empty_count=>6772,
:branch_insn_count=>8853,
:branch_known_count=>1616,
:freed_iseq_count=>83,
:exit_from_branch_stub=>0,
:invalidation_count=>4448,
:invalidate_method_lookup=>3135,
:invalidate_bop_redefined=>0,
:invalidate_ractor_spawn=>0,
:invalidate_constant_state_bump=>476,
:invalidate_constant_ic_fill=>837,
:constant_state_bumps=>0,
:exec_mem_non_bump_alloc=>2540,
:code_gc_count=>0,
:num_gc_obj_refs=>102891,
:num_send=>190671580,
:num_send_known_class=>2554829,
:num_send_megamorphic=>3726922,
:num_send_polymorphic=>38633926,
:num_send_x86_rel32=>0,
:num_send_x86_reg=>0,
:num_send_dynamic=>5813513,
:num_getivar_megamorphic=>172171,
:num_setivar_megamorphic=>6707,
:num_throw=>91166,
:num_throw_break=>8109,
:num_throw_retry=>0,
:num_throw_return=>81667,
:iseq_stack_too_large=>2,
:iseq_too_long=>0,
:temp_reg_opnd=>565918,
:temp_mem_opnd=>419399,
:temp_spill=>364245,
:exit_nop=>0,
:exit_getlocal=>0,
:exit_setlocal=>0,
:exit_getblockparam=>0,
:exit_setblockparam=>372,
:exit_getblockparamproxy=>8077,
:exit_getspecial=>0,
:exit_setspecial=>0,
:exit_getinstancevariable=>0,
:exit_setinstancevariable=>0,
:exit_getclassvariable=>0,
:exit_setclassvariable=>0,
:exit_opt_getconstant_path=>3955,
:exit_getconstant=>0,
:exit_setconstant=>0,
:exit_getglobal=>0,
:exit_setglobal=>0,
:exit_putnil=>0,
:exit_putself=>0,
:exit_putobject=>0,
:exit_putspecialobject=>0,
:exit_putstring=>0,
:exit_concatstrings=>0,
:exit_anytostring=>0,
:exit_toregexp=>0,
:exit_intern=>0,
:exit_newarray=>0,
:exit_newarraykwsplat=>0,
:exit_duparray=>0,
:exit_duphash=>0,
:exit_expandarray=>3242,
:exit_concatarray=>0,
:exit_splatarray=>0,
:exit_newhash=>0,
:exit_newrange=>0,
:exit_pop=>1,
:exit_dup=>0,
:exit_dupn=>0,
:exit_swap=>0,
:exit_opt_reverse=>0,
:exit_topn=>0,
:exit_setn=>0,
:exit_adjuststack=>0,
:exit_defined=>0,
:exit_definedivar=>0,
:exit_checkmatch=>0,
:exit_checkkeyword=>0,
:exit_checktype=>0,
:exit_defineclass=>2406,
:exit_definemethod=>0,
:exit_definesmethod=>0,
:exit_send=>1010,
:exit_opt_send_without_block=>44409,
:exit_objtostring=>35648,
:exit_opt_str_freeze=>0,
:exit_opt_nil_p=>0,
:exit_opt_str_uminus=>0,
:exit_opt_newarray_send=>0,
:exit_invokesuper=>253,
:exit_invokeblock=>0,
:exit_leave=>2862,
:exit_throw=>0,
:exit_jump=>0,
:exit_branchif=>765,
:exit_branchunless=>2,
:exit_branchnil=>0,
:exit_once=>23808,
:exit_opt_case_dispatch=>0,
:exit_opt_plus=>12,
:exit_opt_minus=>1,
:exit_opt_mult=>0,
:exit_opt_div=>0,
:exit_opt_mod=>0,
:exit_opt_eq=>10383,
:exit_opt_neq=>142,
:exit_opt_lt=>0,
:exit_opt_le=>0,
:exit_opt_gt=>0,
:exit_opt_ge=>0,
:exit_opt_ltlt=>17,
:exit_opt_and=>1,
:exit_opt_or=>0,
:exit_opt_aref=>32,
:exit_opt_aset=>0,
:exit_opt_aset_with=>464,
:exit_opt_aref_with=>4544,
:exit_opt_length=>5,
:exit_opt_size=>16,
:exit_opt_empty_p=>1,
:exit_opt_succ=>17,
:exit_opt_not=>0,
:exit_opt_regexpmatch2=>48,
:exit_invokebuiltin=>0,
:exit_opt_invokebuiltin_delegate=>92,
:exit_opt_invokebuiltin_delegate_leave=>0,
:exit_getlocal_WC_0=>0,
:exit_getlocal_WC_1=>0,
:exit_setlocal_WC_0=>1,
:exit_setlocal_WC_1=>0,
:exit_putobject_INT2FIX_0_=>0,
:exit_putobject_INT2FIX_1_=>0,
:exit_trace_nop=>0,
:exit_trace_getlocal=>0,
:exit_trace_setlocal=>0,
:exit_trace_getblockparam=>0,
:exit_trace_setblockparam=>0,
:exit_trace_getblockparamproxy=>0,
:exit_trace_getspecial=>0,
:exit_trace_setspecial=>0,
:exit_trace_getinstancevariable=>0,
:exit_trace_setinstancevariable=>0,
:exit_trace_getclassvariable=>0,
:exit_trace_setclassvariable=>0,
:exit_trace_opt_getconstant_path=>0,
:exit_trace_getconstant=>0,
:exit_trace_setconstant=>0,
:exit_trace_getglobal=>0,
:exit_trace_setglobal=>0,
:exit_trace_putnil=>0,
:exit_trace_putself=>0,
:exit_trace_putobject=>0,
:exit_trace_putspecialobject=>0,
:exit_trace_putstring=>0,
:exit_trace_concatstrings=>0,
:exit_trace_anytostring=>0,
:exit_trace_toregexp=>0,
:exit_trace_intern=>0,
:exit_trace_newarray=>0,
:exit_trace_newarraykwsplat=>0,
:exit_trace_duparray=>0,
:exit_trace_duphash=>0,
:exit_trace_expandarray=>0,
:exit_trace_concatarray=>0,
:exit_trace_splatarray=>0,
:exit_trace_newhash=>0,
:exit_trace_newrange=>0,
:exit_trace_pop=>0,
:exit_trace_dup=>0,
:exit_trace_dupn=>0,
:exit_trace_swap=>0,
:exit_trace_opt_reverse=>0,
:exit_trace_topn=>0,
:exit_trace_setn=>0,
:exit_trace_adjuststack=>0,
:exit_trace_defined=>0,
:exit_trace_definedivar=>0,
:exit_trace_checkmatch=>0,
:exit_trace_checkkeyword=>0,
:exit_trace_checktype=>0,
:exit_trace_defineclass=>0,
:exit_trace_definemethod=>0,
:exit_trace_definesmethod=>0,
:exit_trace_send=>0,
:exit_trace_opt_send_without_block=>0,
:exit_trace_objtostring=>0,
:exit_trace_opt_str_freeze=>0,
:exit_trace_opt_nil_p=>0,
:exit_trace_opt_str_uminus=>0,
:exit_trace_opt_newarray_send=>0,
:exit_trace_invokesuper=>0,
:exit_trace_invokeblock=>0,
:exit_trace_leave=>0,
:exit_trace_throw=>0,
:exit_trace_jump=>0,
:exit_trace_branchif=>0,
:exit_trace_branchunless=>0,
:exit_trace_branchnil=>0,
:exit_trace_once=>0,
:exit_trace_opt_case_dispatch=>0,
:exit_trace_opt_plus=>0,
:exit_trace_opt_minus=>0,
:exit_trace_opt_mult=>0,
:exit_trace_opt_div=>0,
:exit_trace_opt_mod=>0,
:exit_trace_opt_eq=>0,
:exit_trace_opt_neq=>0,
:exit_trace_opt_lt=>0,
:exit_trace_opt_le=>0,
:exit_trace_opt_gt=>0,
:exit_trace_opt_ge=>0,
:exit_trace_opt_ltlt=>0,
:exit_trace_opt_and=>0,
:exit_trace_opt_or=>0,
:exit_trace_opt_aref=>0,
:exit_trace_opt_aset=>0,
:exit_trace_opt_aset_with=>0,
:exit_trace_opt_aref_with=>0,
:exit_trace_opt_length=>0,
:exit_trace_opt_size=>0,
:exit_trace_opt_empty_p=>0,
:exit_trace_opt_succ=>0,
:exit_trace_opt_not=>0,
:exit_trace_opt_regexpmatch2=>0,
:exit_trace_invokebuiltin=>0,
:exit_trace_opt_invokebuiltin_delegate=>0,
:exit_trace_opt_invokebuiltin_delegate_leave=>0,
:exit_trace_getlocal_WC_0=>0,
:exit_trace_getlocal_WC_1=>0,
:exit_trace_setlocal_WC_0=>0,
:exit_trace_setlocal_WC_1=>0,
:exit_trace_putobject_INT2FIX_0_=>0,
:exit_trace_putobject_INT2FIX_1_=>0,
:object_shape_count=>6798,
:total_insns_count=>1030880207,
:ratio_in_yjit=>99.00244636281003,
:side_exit_count=>142586,
:total_exit_count=>24934421,
:avg_len_in_yjit=>40.931234136136545
}
***YJIT: Printing YJIT statistics on exit***
method call fallback reasons:
cfunc_ruby_array_varg: 1,364,707 (50.6%)
iseq_missing_optional_kw: 318,221 (11.8%)
block_arg: 244,502 ( 9.1%)
args_splat_cfunc_zuper: 164,088 ( 6.1%)
iseq_ruby2_keywords: 127,602 ( 4.7%)
args_splat_cfunc_var_args: 115,591 ( 4.3%)
kw_splat: 66,548 ( 2.5%)
args_splat_cfunc_ruby2_keywords: 51,812 ( 1.9%)
iseq_materialized_block: 45,314 ( 1.7%)
iseq_has_kwrest: 40,469 ( 1.5%)
args_splat_ivar: 37,262 ( 1.4%)
iseq_has_no_kw: 32,706 ( 1.2%)
iseq_arity_error: 32,207 ( 1.2%)
iseq_zsuper: 26,504 ( 1.0%)
zsuper_method: 9,517 ( 0.4%)
args_splat_opt_call: 4,578 ( 0.2%)
iseq_has_rest_and_kw_supplied: 4,256 ( 0.2%)
iseq_splat_with_kw: 2,651 ( 0.1%)
args_splat_bmethod: 2,117 ( 0.1%)
ivar_set_method: 1,249 ( 0.0%)
refined_method: 986 ( 0.0%)
optimized_method_block_call: 829 ( 0.0%)
iseq_has_rest_and_captured: 330 ( 0.0%)
iseq_has_rest_opt_and_block: 283 ( 0.0%)
send_chain_not_string_or_sym: 215 ( 0.0%)
call_kwarg: 211 ( 0.0%)
send_getter: 34 ( 0.0%)
invokeblock fallback reasons:
megamorphic: 29,951 (43.1%)
proc: 21,716 (31.3%)
symbol: 16,002 (23.0%)
iseq_arg0_args_splat: 1,789 ( 2.6%)
invokesuper fallback reasons:
defined_class_mismatch: 38,439 (40.8%)
kw_splat: 28,770 (30.5%)
kwarg: 21,275 (22.6%)
not_iseq_or_cfunc: 4,745 ( 5.0%)
megamorphic: 1,020 ( 1.1%)
no_cme: 11 ( 0.0%)
method call exit reasons:
interrupted: 46,592 (71.6%)
not_fixnums: 10,352 (15.9%)
is_a_class_mismatch: 7,839 (12.0%)
splatarray_last_ruby_2_keywords: 235 ( 0.4%)
splatarray_length_not_equal: 57 ( 0.1%)
invokeblock exit reasons:
(all relevant counters are zero)
invokesuper exit reasons:
(all relevant counters are zero)
leave exit reasons:
interp_return: 29,272,603 (100.0%)
se_interrupt: 3,071 ( 0.0%)
getblockparamproxy exit reasons:
unsupported_type: 5,199 (63.0%)
block_param_modified: 3,056 (37.0%)
getinstancevariable exit reasons:
(all relevant counters are zero)
setinstancevariable exit reasons:
(all relevant counters are zero)
definedivar exit reasons:
(all relevant counters are zero)
opt_aref exit reasons:
with_qundef: 4,492 (100.0%)
opt_aref_with exit reasons:
qundef: 4,492 (100.0%)
expandarray exit reasons:
comptime_not_array: 9,667 (81.3%)
splat: 1,543 (13.0%)
not_array: 687 ( 5.8%)
left shift (ltlt) exit reasons:
(all relevant counters are zero)
opt_getconstant_path exit reasons:
no_ic_entry: 4,132 (97.2%)
ic_miss: 120 ( 2.8%)
invalidation reasons:
method_lookup: 5,329 (73.7%)
constant_ic_fill: 1,091 (15.1%)
constant_state_bump: 814 (11.3%)
num_send: 211,796,845
num_send_known_class: 2,721,619 ( 1.3%)
num_send_polymorphic: 40,980,199 (19.3%)
num_send_megamorphic: 6,946,994 ( 3.3%)
num_send_dynamic: 9,643,624 ( 4.6%)
num_getivar_megamorphic: 237,591
num_setivar_megamorphic: 13,809
num_throw: 100,951
num_throw_break: 9,048 ( 9.0%)
num_throw_retry: 0 ( 0.0%)
num_throw_return: 90,508 (89.7%)
iseq_stack_too_large: 0
iseq_too_long: 0
temp_reg_opnd: 645,368
temp_mem_opnd: 479,505
temp_spill: 417,919
bindings_allocations: 0
bindings_set: 0
compiled_iseq_entry: 5,323
compiled_iseq_count: 7,838
compiled_blockid_count: 80,134
compiled_block_count: 123,366
versions_per_block: 1.539
compiled_branch_count: 242,884
compile_time_ms: 4,567
block_next_count: 113,120
defer_count: 37,273
defer_empty_count: 7,018
branch_insn_count: 9,485
branch_known_count: 1,689 (17.8%)
freed_iseq_count: 83
invalidation_count: 7,234
constant_state_bumps: 0
inline_code_size: 23,715,296
outlined_code_size: 18,964,640
code_region_size: 47,607,808
code_region_overhead: 4,927,872 (10.4%)
freed_code_size: 0
yjit_alloc_size: 45,999,820
live_context_size: 3,911,103
live_context_count: 186,243
live_page_count: 2,906
freed_page_count: 0
code_gc_count: 0
num_gc_obj_refs: 119,077
object_shape_count: 7,001
side_exit_count: 301,809
total_exit_count: 29,574,412
total_insns_count: 1,151,485,982
vm_insns_count: 13,444,971
yjit_insns_count: 1,138,342,820
ratio_in_yjit: 98.8%
avg_len_in_yjit: 38.5
Top-20 most frequent exit ops (100.0% of exits):
objtostring: 161,837 (53.6%)
opt_send_without_block: 53,088 (17.6%)
once: 34,815 (11.5%)
expandarray: 11,897 ( 3.9%)
opt_eq: 10,353 ( 3.4%)
getblockparamproxy: 8,255 ( 2.7%)
opt_getconstant_path: 8,175 ( 2.7%)
opt_aref_with: 4,492 ( 1.5%)
leave: 3,075 ( 1.0%)
defineclass: 2,388 ( 0.8%)
send: 967 ( 0.3%)
branchif: 737 ( 0.2%)
opt_aset_with: 456 ( 0.2%)
setblockparam: 371 ( 0.1%)
invokesuper: 274 ( 0.1%)
opt_aref: 267 ( 0.1%)
opt_neq: 140 ( 0.0%)
opt_invokebuiltin_delegate: 91 ( 0.0%)
opt_regexpmatch2: 52 ( 0.0%)
opt_ltlt: 18 ( 0.0%)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment