Skip to content

<xlocinfo.h>: Reduce size of _Ctypevec, ctype<char>, ctype<wchar_t>, and ctype<unsigned short> #426

@SunnyWar

Description

@SunnyWar

_Ctypevec has some padding that can be eliminated by moving the pointers to the front. Here are the sizes before and after rearranging the members.

class _Ctypevec	size(32):
	+---
 0	| _Page
  	| <alignment member> (size=4)
 8	| _Table
16	| _Delfl
  	| <alignment member> (size=4)
24	| _LocaleName
	+---

class std::ctype<char>	size(48):	
class std::ctype<wchar_t>	size(96):
class std::ctype<unsigned short>	size(96):

///////////  After

class _Ctypevec	size(24):
	+---
 0	| _Table
 8	| _LocaleName
16	| _Page
20	| _Delfl
	+---		
class std::ctype<char>	size(40):
class std::ctype<wchar_t>	size(88):
class std::ctype<unsigned short>	size(88):

vNext note: Resolving this issue will require breaking binary compatibility. We won't be able to accept pull requests for this issue until the vNext branch is available. See #169 for more information.

Metadata

Metadata

Assignees

No one assigned

    Labels

    performanceMust go fastervNextBreaks binary compatibility

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions