July 21, 2020 Data point using -vtemplates, and maxAlignment question | ||||
---|---|---|---|---|
| ||||
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? |
Copyright © 1999-2021 by the D Language Foundation