Каковы реальные различия в производительности между Int64 и Int32 в 32- и 64-разрядных системах MS Windows? - PullRequest
5 голосов
/ 11 ноября 2008

Каковы фактические различия в производительности между Int64 и Int32 в 32- и 64-разрядных системах MS Windows?

Было бы также замечательно увидеть некоторые фактические временные характеристики Int64 против Int32 для каждого из двух вариантов операционной системы. ХР или Виста тоже было бы интересно.

  • См. Также этот вопрос о производительности memcpy .

Ответы [ 4 ]

6 голосов
/ 11 ноября 2008

Что касается аппаратного обеспечения, Int64 будет более эффективен на x64 и IA64, чем на x86, потому что 64-разрядные процессоры имеют 64-разрядные регистры для выполнения операций над ними.

Int32 будет одинаково эффективен на всех x86, x64 и IA64.

На x64 и на IA64 одинаково эффективны Int32 и Int64.

На x86 Int32 будет более эффективным, чем Int64.

Что касается самой ОС, я не думаю, что вы увидите каких-либо дополнительных проблем с производительностью, кроме упомянутых выше результатов производительности.

2 голосов
/ 11 ноября 2008

Если сомневаетесь, переходите на int32. Мало того, что это быстрее на архитектурах x86, и многие из них просты, но помните, что ваш кэш конечен, и вы можете поместить вдвое больше int32 в кеш вашего процессора, чем int64.

0 голосов
/ 13 ноября 2008

Возможно, вы захотите следить за прошлыми записями SpankyJ по 64-битной разработке

http://blogs.msdn.com/joshwil/archive/2005/04/28/413320.aspx

0 голосов
/ 11 ноября 2008

С аппаратной точки зрения, т. Е. Если ОС в полной мере использует архитектуру, Int64 будет более эффективен в 64-битной системе.

Int32 может быть немного более эффективным в 32-битной системе, поскольку 64-битной системе, возможно, придется эмулировать 32-битную операцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...