Мой вопрос относительно просто. На 32-битных платформах лучше всего использовать Int32, а не короткие или длинные из-за процессора, обрабатывающего 32 бита за раз. Таким образом, в 64-битной архитектуре это означает, что быстрее использовать длинные рабочие характеристики? Я создал быстрое и грязное приложение, которое копирует int и длинные массивы для тестирования тестов. Вот код (я его предупреждал):
static void Main(string[] args)
{
var lar = new long[256];
for(int z = 1; z<=256;z++)
{
lar[z-1] = z;
}
var watch = DateTime.Now;
for (int z = 0; z < 100000000; z++)
{
var lard = new long[256];
lar.CopyTo(lard, 0);
}
var res2 = watch - DateTime.Now;
var iar = new int[256];
for (int z = 1; z <= 256; z++)
{
iar[z - 1] = z;
}
watch = DateTime.Now;
for (int z = 0; z < 100000000; z++)
{
var iard = new int[256];
iar.CopyTo(iar, 0);
}
var res1 = watch - DateTime.Now;
Console.WriteLine(res1);
Console.WriteLine(res2);
}
Полученные результаты дают примерно в 3 раза быстрее, чем int. Что заставляет меня любопытно, следует ли мне начинать использовать долготы для счетчиков и т.д. Я также сделал аналогичный тест-тест и долгое время был несущественным. Кто-нибудь имеет на это свой вклад? Я также понимаю, что даже если длинные будут быстрее, они будут занимать в два раза больше места.