Caching in druntime TypeInfo classes
Dmitry Olshansky via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 30 16:04:57 PDT 2015
On 01-Jul-2015 00:14, H. S. Teoh via Digitalmars-d wrote:
> While investigating:
>
> https://issues.dlang.org/show_bug.cgi?id=4244
>
> I found that the druntime function for computing the hash of static
> arrays (this also applies to dynamic arrays, btw) is horrendously slow:
> about 8-9 times slower than the equivalent operation on a POD struct of
> the same size.
>
> The problem is caused by the call to hasCustomToHash() inside
> getArrayHash() in object.d, which in turn calls getElement(), which
> walks the typeinfo tree to find the TypeInfo for the first non-array /
> typedef type info definition, in order to determine if array elements
> have a custom toHash method. This walk is done *every single time* the
> array is hashed, even though the return value never changes for each
> array type.
>
Can't the compiler just help us and populate a variable in TypeInfo that
is hasCustomToHash is inefficiently computing?
--
Dmitry Olshansky
More information about the Digitalmars-d
mailing list