Skip to content

Optimize variadic cfunc send #825

@st0012

Description

@st0012

In Lobsters, it accounts for 4.8% of the send fallback reasons and 42.5% of the not optimized method types for send

Top-4 not optimized method types for send (100.0% of total 4,890,681):
   iseq: 2,690,502 (55.0%)
  cfunc: 2,078,778 (42.5%)
  alias:   118,579 ( 2.4%)
   null:     2,822 ( 0.1%)
Top-11 send fallback reasons (100.0% of total 43,069,211):
                send_without_block_polymorphic: 17,044,152 (39.6%)
                     not_optimized_instruction:  7,531,495 (17.5%)
  send_without_block_not_optimized_method_type:  6,319,955 (14.7%)
                send_not_optimized_method_type:  4,890,681 (11.4%)
                              send_no_profiles:  2,899,701 ( 6.7%)
                                 send_variadic:  2,078,778 ( 4.8%)
                send_without_block_no_profiles:  1,762,955 ( 4.1%)
                              send_polymorphic:    494,012 ( 1.1%)
       send_without_block_cfunc_array_variadic:     31,152 ( 0.1%)
                      obj_to_string_not_string:     15,756 ( 0.0%)
       send_without_block_direct_too_many_args:        574 ( 0.0%)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions