Я профилирую некоторый код C #. Приведенный ниже метод - один из самых дорогих. Для ответа на этот вопрос предположим, что микрооптимизация - это то, что нужно делать. Есть ли способ улучшить производительность этого метода?
Изменение входного параметра с p
на ulong []
приведет к неэффективности макросов.
static ulong Fetch64(byte[] p, int ofs = 0)
{
unchecked
{
ulong result = p[0 + ofs] +
((ulong) p[1 + ofs] << 8) +
((ulong) p[2 + ofs] << 16) +
((ulong) p[3 + ofs] << 24) +
((ulong) p[4 + ofs] << 32) +
((ulong) p[5 + ofs] << 40) +
((ulong) p[6 + ofs] << 48) +
((ulong) p[7 + ofs] << 56);
return result;
}
}