2010-04-14 4 views
1

Я знаю, что дополнительное соображение при компиляции для x64 заключается в том, что некоторые типы данных, такие как int, могут содержать большие значения. Есть ли проблемы?Дополнительные проблемы при компиляции для x64

VS2010, выпущенный несколько дней назад, может поддерживать компиляцию для x64 и x32, как и VS2008. Приложение имеет только x32/86. Я все же думаю, что приложение должно быть 64 бит. Что мне не хватает? Очевидно, это не так.

Благодаря

+0

Какой язык ?? –

+0

ints не содержит больших значений в C# или C++. В C++ и int и long все еще 32 бит. size_t, ptrdiff_t - 64 бит, потому что указатели 64 бит. В C# ничего не меняется, но размер указателей (и, следовательно, и типов IntPtr/UIntPtr). – Eloff

ответ

0

Что касается VS2010 (IDE & плагин) не будучи 64 разрядное приложение а, я считаю, что есть 2 основные причины -

  1. Если приложение 64 бит, то указатели и Интс будут потреблять в два раза больше памяти, которая было бы хуже для большинства людей.

  2. Части Visual Studio уже перенесены в .NET. Было бы проще закончить перенос остальной части на .NET, а не на код C/C++ на x64.

http://blogs.msdn.com/ricom/archive/2009/06/10/visual-studio-why-is-there-no-64-bit-version.aspx

0

Причины построить для x86-64:

  • ваше приложение нуждается в> 4 Гб адресного пространства

  • приложение является производительность критически важных и может извлечь выгоду из ~ 30% повышение производительности за счет увеличения размера и количества регистров

Если ни одно из вышеприведенных правил не применяется, нет никаких веских причин сделать приложение 64-разрядным.

+0

@PhiS: эмпирические данные, основанные на вычислительно-интенсивном коде (в основном на материале обработки изображений), который я тестировал на x86 и x86-64 (Только Intel - может не применяться к AMD). –

+0

И некоторые приложения будут медленнее на x64, позвольте мне вытащить номер из моей задницы, скажем, примерно на 30% медленнее. В основном это связано с тем, что кеш относительно меньше (поскольку указатели теперь требуют удвоения объема памяти и кэша.) Поэтому, если вы не делаете тяжелый 64-битный номер хруста или не нуждаетесь в адресном пространстве, это обычно не стоит. – Eloff

+0

@ Eloff: Я основываю свое 30% -ное требование на контрольных данных, которые я собрал для различных бит кода, которые я разработал. Правда, это, в основном, интенсивные вычисления «число хруст», но улучшение производительности на 30% с помощью x86-64 кажется удивительно последовательным. –