У меня есть сборка .NET (3.5 framework), и у нее в основном есть набор настраиваемых элементов управления, которые делают много вещей, таких как наброски точек и тому подобное. Сборка компилируется как «AnyCPU», поэтому я могу использовать ее как на 32-битной, так и на 64-битной. Когда я попытался сравнить производительность приложения, использующего эту сборку в 32-битной и 64-битной, я вижу интересные результаты. Производительность приложения состоит из двух частей: один - это задний конец, который выполняет множество вычислений и копирование данных. Другая - фактическая часть чертежа элемента управления. По результатам, похоже, что первая часть быстрее в 32-битной, а вторая - быстрее в архитектуре с 64-битной архитектурой. Может ли кто-нибудь объяснить это поведение? Часть вычислений и копирования данных медленнее в 64-битной, потому что это то, что арифметика с плавающей запятой медленнее в 64 бит по сравнению с 32-битной?32bit vs 64bit performance
PS: Я оценил приложение на 64-разрядной машине AMD с 8 ГБ оперативной памяти, с установленной на нем 32-разрядной и 64-разрядной версией Vista.