When calling terminating operators such as Single, Average, we currently call MakeGenericMethod, which is slow; when running a basic tracking query + update against InMemory, this (and the related GetGenericArguments) take up around 0.6% of the running time with Npgsql, around 6% with InMemory.
We could probably follow the runtime's pattern to get rid of this.
When calling terminating operators such as Single, Average, we currently call MakeGenericMethod, which is slow; when running a basic tracking query + update against InMemory, this (and the related GetGenericArguments) take up around 0.6% of the running time with Npgsql, around 6% with InMemory.
We could probably follow the runtime's pattern to get rid of this.