[MDEV-7966] Item::real_item() takes 0.12% in OLTP RO Created: 2015-04-09  Updated: 2016-02-16

Status: Open
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.1
Fix Version/s: 10.2

Type: Bug Priority: Minor
Reporter: Sergey Vojtovich Assignee: Alexander Barkov
Resolution: Unresolved Votes: 0
Labels: None

Epic Link: Performance: micro optimizations

 Description   

Data comes from Sandy Bridge system running sysbench OLTP RO in 1 thread against 1 table.

Call graphs:

-   0.12%  mysqld  mysqld
   - Item::real_item()
      + 29.39% Item_func::setup_args_and_comparator(THD*, Arg_comparator*)
      + 20.40% update_ref_and_keys(THD*, st_dynamic_array*, st_join_table*, unsigned int, Item*, unsigned long long, st_select_lex*, st_sargable_param**) [clone .isra.253]
      + 13.81% add_key_fields(JOIN*, key_field_t**, unsigned int*, Item*, unsigned long long, st_sargable_param**)
      + 8.36% SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool, bool, bool)
      + 8.17% Item_func::fix_fields(THD*, Item**)
      + 3.35% create_sort_index(THD*, JOIN*, st_order*, unsigned long long, unsigned long long, bool)
      + 3.34% JOIN::prepare_stage2()
      + 3.34% JOIN::exec_inner()
      + 2.73% Item_func::compile(bool (Item::*)(unsigned char**), unsigned char**, Item* (Item::*)(unsigned char*), unsigned char*)
      + 2.48% get_mm_tree(RANGE_OPT_PARAM*, Item**)
      + 1.90% Item::compile(bool (Item::*)(unsigned char**), unsigned char**, Item* (Item::*)(unsigned char*), unsigned char*)
      + 1.51% make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*)

This is virtual method which can't be inlined. Most time spent for function call convention. Check if we can revoke it's virtual status.


Generated at Thu Feb 08 07:23:38 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.