Написание x64-приложений. Есть ли смысл? - PullRequest
1 голос
/ 17 ноября 2010

Очевидно, что он, вероятно, обладает некоторыми (или многими) преимуществами по сравнению с 32-разрядными, о которых я явно не знаю.Итак, что они?

Я просто не понимаю, так как многие вещи до сих пор не поддерживаются на ПК с X64.Например, в Internet Explorer 8 и 9 64-разрядные версии не поддерживают Flash, и, когда мне удается заставить его работать, он не работает, а затем выводит сообщение о том, что 64-разрядные IE в настоящее время не работают.поддержка flash или Flash недоступна в 64-разрядных браузерах.

У меня сейчас 64-разрядный компьютер с Windows 7, и я все еще пишу 32-разрядные приложения, и все они работают отлично (за исключением несколькихздесь есть ошибки, которые появятся, если вы используете 32/64-битный).Почему / нужно разрабатывать для 64-битных систем?Я не понимаю, чем они отличаются, и если бы я больше узнал о разработке для 64-битной системы, с чего бы вы порекомендовали мне начать?

Ответы [ 3 ]

1 голос
/ 17 ноября 2010

Это зависит от того, что вы делаете.

Если вы пишете отдельное приложение, которое не разговаривает ни с чем другим, не требует огромного объема памяти и не получит выгоды отдополнительные регистры, предоставляемые x64, позволят вам не получить много (кроме размеров раздутой структуры :)) от создания версии для x64.

OTOH, для кода, который выполняется внутри процесса, x64 является своего рода вирусным.Сама оболочка теперь 64-битная, поэтому, если вы хотите подключиться к ней, вы должны быть 64-битной.(Или, по крайней мере, предоставьте адаптер, который может взаимодействовать с 64-битным миром.) В результате часто проще скомпилировать все как 64-битные, чтобы не возникало проблем с сортировкой вызовов между двумя мирами.

(Хотя, конечно, 32-битная сборка для 32-битной ОС все еще существует).

Редактировать: Забыл сказать, что полезно также ориентироваться на x64, если вы хотите представить «реальный»вид машины.64-битная Windows «лжет» 32-битным процессам о разных вещах по причинам совместимости.Вы можете отключить / обойти ложь, но делать это без поломок (например, сторонних библиотек DLL) может быть сложно, и лучше избегать этого.

1 голос
/ 17 ноября 2010

Наиболее часто упоминаемая причина для 64-битных приложений - доступ к большему объему памяти. В одном очевидном примере серверы баз данных могут получить огромную выгоду, когда большинство (или все) данных, с которыми они работают, доступны в памяти, а не хранятся на диске.

Вы также можете получить дополнительную скорость, особенно для приложений с плавающей запятой (я наблюдал 3-кратное ускорение довольно регулярно, хотя это также в некоторой степени зависит от процессора).

Некоторые другие приложения, тем не менее, получают небольшой выигрыш или даже теряют его при переходе на 64-разрядные. Процессор по-прежнему имеет ту же пропускную способность для памяти, но все ваши указатели удваиваются в размере, поэтому, если вы часто используете указатели, он может привести к чистым потерям.

0 голосов
/ 17 ноября 2010

64-разрядное программное обеспечение может адресовать более 4 ГБ памяти (в действительности ограничение составляет ~ 3 ГБ) напрямую и использует дополнительное оборудование (дополнительные регистры и т. Д.), Доступное на современных процессорах, что повышает производительность.Это две основные причины перехода на 64-битную версию.

Обычно вы разрабатываете кроссплатформенное программное обеспечение, а ваш компилятор позаботится об использовании всех 64-битных функций.

...