Ответ 1
Нет, нет никакой разницы в производительности между AnyCPU-приложением, работающим на 64-битной Windows, и запущенным на нем x64-приложением. Единственное, что изменяет флаг, это некоторые флаги в заголовке скомпилированной сборки, и CLR использует его только для того, чтобы решить, следует ли использовать x86 или x64, ничего больше
Если вы спрашивали, существует ли разница между приложением x86, запущенным на 64-разрядной Windows и x64 (или AnyCPU), тогда ответ будет да. Различия между ними:
- 64-разрядный, очевидно, использует ссылки, которые в два раза больше, чем 32-разрядные, что означает больший объем памяти, но это также означает, что вы можете использовать больше памяти
- 64-разрядные могут использовать больше регистров, которые доступны только в 64-битном режиме процессоров.
- 64-разрядная JIT отличается от 32-разрядной JIT, она имеет различный набор оптимизаций: например, 64-разрядная JIT иногда использует оптимизацию хвоста даже если вы специально не запрашиваете его с помощью инструкции
tail.
(которая, например, С# никогда не делает)