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