Hi, Sergey! On Apr 17, [email protected] wrote: > revision-id: 696188fe2f0756a98914df5b95ba302f7e5c55df > parent(s): 0520a009c7139c940ab92345054bf0dba7808b11 > committer: Sergey Vojtovich > branch nick: mariadb > timestamp: 2015-04-17 14:30:15 +0400 > message: > > MDEV-7951 - sql_alloc() takes 0.25% in OLTP RO > > sql_alloc() has additional costs compared to direct mem_root allocation: > - function call: it is defined in a separate translation unit and can't be > inlined > - it needs to call pthread_getspecific() to get THD::mem_root > > It is called dozens of times implicitely at least by: > - List<>::push_back() > - List<>::push_front() > - new (for Sql_alloc derived classes) > - sql_memdup() > > Replaced lots of implicit sql_alloc() calls with direct mem_root allocation, > passing through THD pointer whenever it is needed. > > Number of sql_alloc() calls reduced 345 -> 41 per OLTP RO transaction. > pthread_getspecific() overhead dropped 0.76 -> 0.59 > sql_alloc() overhed dropped 0.25 -> 0.06
ok to push Regards, Sergei _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

