.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. Есть ли возможность каким-нибудь образом "ускорить" этот тип данных вдвое?