Есть ли способ сделать этот код C# более оптимизированным с точки зрения скорости? Использование и размер памяти не имеюC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ сделать этот код C# более оптимизированным с точки зрения скорости? Использование и размер памяти не имею

Сообщение Anonymous »

RollCount, FaceCount и Mod — локальные целые числа. Rolls — локальный массив целых чисел. Различные вызовы string.Format() предназначены для статических полей CompositeFormat, доступных только для чтения.
w, x, y и z — статические поля, инициализируемые следующим образом.
x = (uint)DateTime.Now.Ticks;
y = (1812433253 * x) + 1;
z = (1812433253 * y) + 1;
w = (1812433253 * z) + 1;

Код, который я пытаюсь оптимизировать:
uint a = w, b = x, c = y, d = z, e;
int MaxCount = 0, MinCount = 0, NormalizedFaceCount = Math.Abs(FaceCount - 1);
int[] Rolls = new int[RollCount];

for (int i = 0; i < RollCount;)
{
switch ((RollCount - i) % 4)
{
case 0:
e = b ^ (b > 19) ^ e ^ (e >> 8)) & 0x7FFFFFFF) % (NormalizedFaceCount + 1)) + Mod) != Mod)
{
if (Rolls != NormalizedFaceCount + Mod) // If the roll is a normal roll.
{
Response += string.Format(null, StndString, Rolls);
}
else // If the roll is of maximum value.
{
Response += string.Format(null, CritString, Rolls);
MaxCount++;
}
}
else // If the roll is of minimum value.
{
Response += string.Format(null, FailString, Rolls);
MinCount++;
}
i++;
goto case 3;
case 3:
e = b ^ (b > 19) ^ e ^ (e >> 8)) & 0x7FFFFFFF) % (NormalizedFaceCount + 1)) + Mod) != Mod)
{
if (Rolls != NormalizedFaceCount + Mod)
{
Response += string.Format(null, StndString, Rolls);
}
else
{
Response += string.Format(null, CritString, Rolls);
MaxCount++;
}
}
else
{
Response += string.Format(null, FailString, Rolls);
MinCount++;
}
i++;
goto case 2;
case 2:
e = b ^ (b > 19) ^ e ^ (e >> 8)) & 0x7FFFFFFF) % (NormalizedFaceCount + 1)) + Mod) != Mod)
{
if (Rolls != NormalizedFaceCount + Mod)
{
Response += string.Format(null, StndString, Rolls);
}
else
{
Response += string.Format(null, CritString, Rolls[i]);
MaxCount++;
}
}
else
{
Response += string.Format(null, FailString, Rolls[i]);
MinCount++;
}
i++;
goto case 1;
case 1:
e = b ^ (b > 19) ^ e ^ (e >> 8)) & 0x7FFFFFFF) % (NormalizedFaceCount + 1)) + Mod) != Mod)
{
if (Rolls[i] != NormalizedFaceCount + Mod)
{
Response += string.Format(null, StndString, Rolls[i]);
}
else
{
Response += string.Format(null, CritString, Rolls[i]);
MaxCount++;
}
}
else
{
Response += string.Format(null, FailString, Rolls[i]);
MinCount++;
}
i++;
continue;
}
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... -speed-mem
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»