Это может быть связано с когерентностью кэша.Не забывайте, что каждая ссылка будет в два раза больше на 64-битной машине, чем на 32-битной.Это означает:
- Каждый из ваших объектов экземпляра будет больше, поэтому они будут распределяться дальше в памяти (в любом случае в x64 будет больше накладных расходов на объект, и любые ссылочные поля будутв два раза больше)
- Размер самого массива будет примерно вдвое больше
Теперь вполне может оказаться, что в 32-разрядной среде CLR вы находитесь в одном из самых быстрых кэшей наваш процессор - тогда как в 64-битном CLR вы вышли за его пределы, поэтому ему приходится переставлять память в этот кеш или из него, либо в другой кеш, либо в основную память.
Именно поэтому по умолчанию x86для исполняемых проектов в VS2010 (и, возможно, 2008; не уверен). Этот пост в блоге более подробно описан.