Оптимизировать фрагмент кода C #

Я профилирую некоторый код 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;
    }
}
5
задан casperOne 12 November 2011 в 01:59
поделиться