Data point using -vtemplates, and maxAlignment question

Guillaume Piolat first.name at gmail.com
Tue Jul 21 13:36:07 UTC 2020


So I'm using the new -vtemplates flag to find out where goes all 
this memory and time :) It's great.

The templates from stdlib I most encounter are:
(I've listed only those above 20 unique instantiations)

---------------------->8---------------------------


Number   Unique   Name
       28       23   isAbstractClass(T...) if (T.length == 1)
      128       17   isImplicitlyConvertible(From, To)
       71       29   isPointer(T)
       24       23   BooleanTypeOf(T)
      277      249   maxAlignment(U...) if (isTypeTuple!U)
      192      180   isSame(ab...) if (ab.length == 2)
       28       28   emplace(T, Args...)(T chunk, auto ref Args 
args) if (is(T == class))
      615       69   isAggregateType(T)
       48       48   genericIndexOf(args...) if (args.length >= 1)
      233       39   isInputRange(R)
      212       77   isCallable(T...) if (T.length == 1)
       21       21   isRvalueAssignable(Lhs, Rhs = Lhs)
       23       23   StaticArrayTypeOf(T)

       .... a lot of other less commonly instantiated template...

---------------------->8---------------------------

Of those, I think the most problematic are those with a very high 
unique instantiation number.

For example: maxAlignment makes up _30%_ of the unique 
instantiations in this production program.

My question is: is there a plan to optimize this large number of 
maxAlignment  instantiations?


More information about the Digitalmars-d mailing list