.Net Core. Пользовательский тип данных sctruct. Как ускорить?

Есть пользовательский тип данных PID. Это из DVB. Максимальное значение 0x1FFF, минимальное 0. Это, можно сказать, основные требования. Сделал такую простую структуру:

public struct PID
{
    private int m_pid;

    public static readonly PID MinValue = new PID { m_pid = 0 };
    public static readonly PID MaxValue = new PID { m_pid = 0x1fff };

    private PID(int pid)
    {
        if (pid < PID.MinValue)
        {
            throw new ArgumentOutOfRangeException("pid", $"Value {pid} is less than MinValue {PID.MinValue}");
        }
        if (pid > PID.MaxValue)
        {
            throw new ArgumentOutOfRangeException("pid", $"Value {pid} is more than MaxValue {PID.MaxValue}");
        }
        m_pid = pid;
    }

    public static implicit operator PID(int pid)
    {
        return new PID(pid);
    }
    public static implicit operator int(PID pid)
    {
        return pid.m_pid;
    }
    public override string ToString()
    {
        return m_pid.ToString();
    }

}

Для тестов сравнения производительности сделал вот такой вот метод:

        int j = 0;
        for(int i = 0; i < 1000000000; i++)
        {
            PID pid = j;
            j++;
            if (j >= PID.MaxValue) { j = 0; }

            PID pid2 = pid;                

            if (pid > pid2)
            {

            }
        }

10^9 итераций. Моя структура проходит этот цикл на моём ноуте за 42000 ms. Если брать простой int, то тест заканчивается за 8000 ms. Есть ли возможность каким-нибудь образом "ускорить" этот тип данных вдвое?


Ответы (0 шт):