Есть ли хорошая причина, чтобы поставить 32-битную версию вместе с 64-разрядной версии любого программного обеспечения, ориентированных на современных настольных компьютерах, под управлением современных 64-разрядной операционной системы на 64-разрядном оборудовании?
Похоже, что 64-битная версия программы будет более эффективной, позволяют более высокое использование памяти, если это необходимо, и т. д. Apple даже использует 64-битные процессоры для своих телефонов, хотя у них всего 1-2&ампер;усилитель; nbsp;ГБ оперативной памяти, что намного ниже 4&усилителя;усилитель; nbsp;ГБ для 32-разрядного процессора'ов.
Если сравнивать с очень конкретной архитектуры процессора, операционная система и библиотеки инфраструктуры здесь нет, я выиграл'т быть в состоянии пойти в более детально.
Разница между 32 бит и 64 бит программное обеспечение программное обеспечение размер указателей, и, возможно, размер целочисленных регистров. Что's оно.
Это означает, что все указатели в программе дважды размере. И (по крайней мере, на ILP32/архитектура LP64) долго здесь вдвое больше, а также. Обычно это получается около 30% увеличение размера кода. Это означает, что ...
Это не незначительный отрицательный эффект на производительность.
Делать это имеет смысл только, если вы можете и"выкупить" и эти показатели стоит как-то. В принципе, есть два способа сделать это: вы много 64-битное целое математику, или вам нужно больше, чем 4 GiByte отображаемой памяти. Если один или оба из тех, правда, имеет смысл использовать 64-разрядное программное обеспечение, в противном случае он не'т.
Примечание: существует несколько архитектур, где нет соответствующих 32-или 64-разрядных вариантах. В этом случае вопрос, очевидно, не'т иметь смысл. Наиболее популярным являются для ia64, которая только 64 бит а не 32 битный вариант, и x86 на amd64, которые, хотя и тесно связанные, разных архитектур, как x86 32 бита, только для amd64 быть только 64-битная версия.
На самом деле, последнее утверждение не верно на 100%. Линукс недавно добавлена для x32 ABI, который позволяет запускать на amd64 код с 32-х битными указателями, так что даже если что'ы не "по-правильному" и архитектуры процессора, это способ с использованием архитектур amd64 архитектуру таким образом, как если бы это был родной 32-битный вариант. Это было сделано именно * потому, что нагрузки, которые я упомянул выше вызывает недвижимость* измеримых, количественных проблем для реальных пользователей, работающих в реальном мире код в реальных системах.
Если программное обеспечение должно напрямую взаимодействовать с унаследованными системами, драйверов или библиотек, то вы, возможно, потребуется, чтобы поставить 32-битную версию, поскольку, насколько мне известно, ОС в целом (безусловно, Windows и Linux насколько мне известно) не'т позвольте смешивание 64-битных и 32-битного кода внутри процесса.
Например, если ваша программа нуждается в доступе к специальности скобяными, это's не редкость для потребителей, чтобы работать на более старых моделях, для которого доступны только 32-разрядные драйверы.
Если ваша программа представляет собой библиотеку DLL, вы должны обеспечить 32-разрядных и 64-разрядных версиях. Вы не представляете насколько клиент будет использовать 32-разрядные или 64-разрядные программы для работы с DLL, а DLL-библиотеку, чтобы использовать один и тот же бит-продолжительность как приложения. Это необоротный.
Если ваше программное обеспечение является автономным исполняемым файлом, он'ы менее понятно. Если вы Don'т нужна ваша программа работать на старых ОС, вам не нужно, чтобы обеспечить 32-разрядной версии. Просто придерживайся 64-бит, указать, что он требует 64-битной ОС, и работу.
Однако если вам необходимо программное обеспечение, чтобы работать на старых ОС, то вы можете активно **** не хочу представить 64-разрядную версию. Если у вас есть две версии, то у вас двойное тестирование, и правильно тестирование программного обеспечения в различных операционных систем и языков-это не быстрый процесс. Так как 32-разрядное программное обеспечение работает вполне счастливо на 64-битную платформу, Это's все еще достаточно распространенным для программного обеспечения, чтобы быть выпущен только как 32-разрядные, особенно небольшим компаниям.
Также обратите внимание, что большинство телефонов являются 32-разрядными. Может быть, некоторые из них являются 64-разрядным, но там's немного веских причин, чтобы сделать этот шаг. Так что, если вы'вновь развивающимся кросс-платформенным и, возможно, хотите, чтобы ваш код, чтобы запустить на Android, а также, оставаясь 32-бит-это безопасный вариант.