Каковы различия между 32-разрядным и 64-разрядным, и что я должен выбрать?

142

В чем разница между 32-битной и 64-битной Ubuntu? Я слышал, что 64-битная платформа работает лучше и может обнаружить более 4 ГБ ОЗУ. Кроме того, хотя некоторые приложения еще не портированы на 64-разрядную версию, ia32-libsих можно запустить на 64-разрядной машине.

Если это так, то почему бы не продвигать 64-разрядные над 32-разрядными?

squallbayu
источник

Ответы:

147

Я полагаю, что основной вопрос при выборе между 32 и 64 битами заключается не в том, «поддерживает ли мой процессор 64 бита - если так, то я должен использовать 64, потому что это вдвое лучше», а «Сколько памяти у меня есть?» ,

64-разрядные программы используют примерно на 50% больше памяти, чем их 32-разрядные аналоги. Результаты этого:

  • меньшее количество кода / данных может поместиться в кэш-память процессора -> больше кеш-памяти -> ваш сверхбыстрый процессор больше ждет, пока контроллер памяти извлечет данные из ОЗУ. Процессор также должен читать больше данных, потому что он более раздутый.

  • Linux использует нераспределенную оперативную память для кэширования дисков. Меньше свободной памяти -> меньше места для дискового кэша -> более медленный доступ к диску

  • Как только у вас заканчивается ОЗУ, и система начинает обмениваться - доступ к диску в тысячи раз медленнее, чем ОЗУ, поэтому любые потенциальные преимущества 64-битного кода (см. Ниже) выходят за рамки.

С другой стороны, в 64-битном режиме процессор имеет больше регистров, поэтому ему не требуется доступ к памяти, что часто также делает некоторые вычисления (64-битные числа и т. Д.) Более эффективными. В общем, код, который не ограничен в памяти, работает немного быстрее в 64-битном режиме.

Итак, если ваша система имеет, скажем, 2 ГБ ОЗУ или меньше, я бы определенно выбрал 32 бита. Более 4GiB - преимущества 64 бит становятся все более заметными. Вокруг 4GiB это «серая зона» - вам нужно сделать выбор самостоятельно.

Вот скриншоты (довольно старой) ванильной Ubuntu, работающей в VirtualBox с 1 ГБ ОЗУ:

32 бита: использует 388 МБ ОЗУ сразу после загрузки, дополнительные приложения не запускаются (из скриншота 397780 КБ, что составляет 388 МБ)

32-битная Ubuntu

64 бита: использует 491 МБ ОЗУ (на снимке экрана: 503452 КБ = 491 МБ)

64-битная Ubuntu

Кроме того, в моем тестировании веб-приложение, написанное на Python, использовало до 60% больше памяти на 64-разрядной машине, в результате чего набор тестов выполнялся за 380 секунд на 32-разрядной машине, но занимал 523 секунды на 64-разрядной машине. бит один (оба с 1 ГБ ОЗУ). Если бы машины не были ограничены RAM, результаты, вероятно, были бы другими (как показывают тесты phoronix).

Вот несколько более тщательных и недавних тестов: http://kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods

бесплатно мем использовал своп используется

По сути, это все равно, что отдать 30% оперативной памяти в обмен на возможное увеличение скорости процессора на 10%.

Сергей
источник
1
Итак, 32-разрядный, 388M; 64-бит, 498M или около 110M больше, и это 30% от 2G ??
иррациональный Джон
22
Я согласен с цифрами, но не согласен с заключением. На 30% меньше оперативной памяти и на 10% улучшенная производительность делают это дело века! Более того, гораздо дешевле забрать дополнительное ОЗУ, чем заменить процессор.
Оли
1
Да, я не согласен с этим, но я бы сказал, что это сильнее и пойдет немного дальше, предлагая только 32-битную версию, если она не поддерживается процессором или нецелесообразно обновлять ОЗУ (оно древнее или вы собираетесь его выбросить) , Люди с современным компьютером с <= 2 ГБ должны потратить $ 20-30 на ebay и иметь 4 ГБ. 10% повышение стоит того.
Оли
1
Мне любопытно, как современные браузеры с множеством открытых вкладок и JavaScript здесь. Я часто сталкиваюсь со свопом (даже с 8 ГБ ОЗУ), открывая множество вкладок, а современные веб-сайты используют множество библиотек javascript и т. Д. Как соотносятся память и скорость процессора при интенсивном использовании chrome или firefox?
nealmcb
2
Это все еще верно в 2015 году? Я хочу установить Ubuntu 14.04 на планшет Atom с 1 ГБ памяти и медленным процессором (с поддержкой 64-разрядных систем), поэтому после прочтения я сильно склоняюсь к 32-разрядным. Изменилось ли что-то стоящее после публикации этого ответа? Особенно с точки зрения базового потребления 64-битной памяти по сравнению с 32-битной, поскольку память будет самым узким местом в этой системе.
Андреас Хартманн
22

Если вы не хотите изучать технические детали, выберите рекомендуемую 32-разрядную версию.

64-разрядный обычно быстрее, даже если объективно трудно заметить. Это в меньшей степени связано с шириной 64-битных данных, но с наличием 16 по 8 общих регистров ЦП во всем наборе команд. Таким образом, недостаток траты большей памяти на управление и увеличение указателей в основном нивелируется.

Практическая проблема: не у всех есть AMD64-совместимый процессор. Продвижение 64-битной версии по сравнению со стандартной версией i686 приведет к еще большему разочарованию пользователей. Поэтому в течение следующих нескольких лет будет проще представить 32-битную версию среднестатистическому пользователю. Это точно не проблема для всех, кто знает, поскольку 64-битная версия легко доступна. И мы, пользователи amd64, не имеем никаких недостатков в этой ситуации, за исключением начальной загрузки. Все пакеты доступны в обеих архитектурах.

При таких обстоятельствах страница загрузки Ubuntu выглядит нормально для меня. Там написано «32 бита (рекомендуется)», но «рекомендуется» означает «меньше проблем, если вы не знаете всех технических деталей вашего компьютера». Для страницы загрузки издания нетбука нет даже выбора, потому что некоторые процессоры Intel Atom являются 32-разрядными только в 2010 году!
Итак, в заключение, я думаю, что по-прежнему необходимо избегать проблем с совместимостью. Однако я согласен с тем, что по крайней мере должна быть блестящая сноска, что -64 быстрее, чем -32, и рекомендую ЕСЛИ (НО ТОЛЬКО ЕСЛИ) целевая система поддерживает это.

марио
источник
1
Мне будет интересно, когда будут поддерживаться новые двоичные файлы x32 и ABI, сколько 64-разрядных приложений переключится на этот ABI en.wikipedia.org/wiki/X32_ABI, чтобы использовать меньше ресурсов и памяти и полностью использовать процессор.
Эмануэле
Если рекомендуется 32-битная версия, то почему Wubi предпочитает 64-битную версию ?
Дан Даскалеску
1
Теперь можно рекомендовать 64-битную версию ...
Уилф
5
Примечание для читателей: Этот ответ был написан более 4 лет назад. Я бы не советовал устанавливать 32-битные в настоящее время, и я не думаю, что Ubuntu будет рекомендовать его больше.
Томасруттер
Теперь это вопрос, который должен решить сам себя чуть менее чем через год, и 64-битные сборки, вероятно, станут стандартными после Ubuntu 16.04 .
Mario
18

Термины 32-битный и 64-битный относятся к тому, как процессор компьютера обрабатывает информацию. 64-разрядная версия обрабатывает большие объемы оперативной памяти более эффективно, чем 32-разрядная система. 1

  • Для запуска 64-битной ОС вам нужна поддержка 64-битного процессора.
    • Для запуска 64-битного приложения вам нужна поддержка как из 64-битной ОС, так и из 64-битного процессора.

Общее правило состоит в том, что 32-разрядная версия (ОС и приложение) будет работать на 64-разрядной версии, но 64-разрядная версия (ОС и приложение) не работает на 32-разрядной версии.

  • 32-разрядная ОС будет работать на 32-разрядном или 64-разрядном процессоре без каких-либо проблем.
  • 32-разрядное приложение будет работать без проблем в 32-разрядной или 64-разрядной ОС.
  • Но 64-битное приложение будет работать только на 64-битной ОС, а 64-битная ОС будет работать только на 64-битном процессоре.

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

32-разрядные системы имеют ограничение в 4 ГБ ОЗУ, что означает, что они не могут адресовать более 4 ГБ ОЗУ, даже если в системе установлено больше (не все из них будут использоваться). Обходные пути доступны, но трудно сделать для обычного пользователя.

Примечание: Ubuntu 12.10 и новее будут автоматически поддерживать PAE. До 12.10 у вас есть возможность выбрать поддержку PAE в зависимости от вашего процессора. PAE расширяет максимальный объем ОЗУ на 32-разрядных до 64 ГБ, здесь можно найти больше информации .

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

Большинство 32-битных приложений будут продолжать работать в 64-битных системах, но некоторые приложения не работают вообще или будут работать медленнее.

Для получения дополнительной информации вы можете посмотреть на 32-битные и 64-битные

1 Источник: Microsoft

Митч
источник
@Alvar CPU должен поддерживать PAE. В общем, рекомендуется использовать 64-битную систему, если у вас 4 ГБ или более памяти и / или вы хотите получить все преимущества 64-битной архитектуры.
Митч
Я понимаю, но, как я уже сказал, процессор должен поддерживать PAE, чтобы он работал . Например, Atom не поддерживает PAE.
Митч
Просто добавил это как примечание в ответе.
Митч
добавил объяснение того, что PAE с источником. Надеюсь, вы счастливы с этим.
Алвар,
10

Как указано здесь, в Phoronix : «После прояснения ситуации с несколькими арками в Ubuntu большинство приложений и плагинов теперь работают нормально на 64-битных (таких как Adobe Flash и Java), а 64-битные обычно намного быстрее 32-битных. -bit, действительно нет особой причины не переходить на версию x86_64. "

Хотя обсуждается, будет ли 64-битной версией по умолчанию вместо 32-битной, я думаю, что у вас есть некоторое повышение производительности с первой. Смотрите эти тесты .

И слово вашей «низкой» оперативной памяти от Phoronix : «Некоторые разработчики Ubuntu были чрезмерно обеспокоены тем, что 32-разрядные нетбуки еще существуют и для систем, которые имеют только 2 ГБ ОЗУ, где использование программного обеспечения x86_64 может привести к запуску нехватка памяти и, следовательно, увеличение использования SWAP. Однако для большинства пользователей они намного лучше в 64-битном мире ».

Может быть, вы можете установить его и посмотреть, часто ли система использует своп.

desgua
источник
3

Я изучал это для Ubuntu Precise LTS некоторое время назад. Вот некоторые результаты анализа, который я провел:

http://kernel.ubuntu.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/low-memory-systems/readme.txt

http://kernel.ubuntu.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/hpmini-and-x220-tests/results-3/results.txt

В принципе, если у вас 4 ГБ или меньше - это нормально, для более чем 4 ГБ рассмотрите возможность использования i386-pae или amd64. 64-разрядные системы потребляют больше памяти (например, указатели имеют размер 64-разрядных), но вы можете увидеть выигрыш в производительности на 64-разрядных системах из-за оптимизаций, использующих 64-разрядные копии или использующих дополнительные регистры ЦП, которые доступны в 64-разрядном режиме.

Колин Ян Кинг
источник
3

Для меня самым важным был тот факт, что вы не можете использовать файловую систему ZFS на 32-битной ОС, потому что она там просто нестабильна из-за ограничений vmalloc 32-битной ОС (независимо от PAE или nonPAE). Это была причина для меня переустановить на 64-битную, и я никогда не оглядывался назад. Даже у NVIDIA есть несколько строк о vmalloc на страницах «поиска и устранения неисправностей», заканчивающихся поощрением пользователей к переходу на 64-битные ядра.

Существует ограничение адреса 1 ГБ в 32-битном режиме, поэтому, даже если он может использовать до 4 ГБ, только 1 ГБ называется так называемым «низким», а остальное - «большим объемом памяти», что не является таким общим. И 1ГБ - действительно небольшое число, в настоящее время .. Попробуйте #free -l

Коро
источник
2

Как указывалось в предыдущих статьях, 64-разрядный по сравнению с 32-разрядным относится к размеру данных, которые могут быть перемещены компьютером за одну операцию. Это относится к размеру регистров на процессоре и ширине шин (регистр просто хранит данные для работы с процессором, они были крошечными в потребительском оборудовании и росли с момента появления домашних вычислений). Шины соединяют разные части материнской платы, они являются магистралью, по которой передаются данные).

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

Джереми
источник
2

Для удобства пользователей официальный сайт Ubuntu предлагает 32-битные версии из-за более гибкой настройки.
Я считаю здесь также означает согласованность данных.

Существует очень много точек для любого за и против . На мой взгляд, отличная производительность 64-битной ОС на 64-битном процессоре Intel Architecture напрямую связана с использованием 64-битного программного обеспечения и драйверов, что может дать вам шанс превзойти обычную 32-битную производительность.

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

Тем не менее, вашими подписанными компонентами и этой ссылкой:
Технология Intel® Extended Memory 64: 64-разрядные настольные вычисления
... лучший опыт возможен с 4 ГБ + памяти.

Я считаю, что это будет хорошим и не очень дорогим решением для вас.

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

быстрый
источник
2

В принципе, я бы сказал, использовать 64-битную версию, если вам это нужно.

Если вы в основном просматриваете веб-страницы, смотрите YouTube, тусуетесь на Facebook, смотрите фильмы и т. Д., Тогда 32-битная версия лучше, потому что вам не нужно хорошее оборудование для этих целей.

Если вы играете в игры в Steam, WINE и т. Д., Запускаете множество программ, редактируете мультимедиа, и тогда 64-битная версия - лучший выбор.

поэтому случайное использование 32-битной ОС, расширенное использование 64-битной версии.

user241367
источник
1

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

Мартин Зелтин
источник
1

Честно говоря, я не заметил никакой разницы, за исключением небольшого сокращения времени, необходимого для компиляции программ и кодирования видео. Кроме этого, он чувствует себя так же для меня. Я заметил, что с точки зрения производительности действительно важен видео драйвер. Я думаю, что 32-битные драйверы видео лучше поддерживаются. Я недавно установил последнюю версию драйвера nVidia 260 в 32-битную систему, и это сильно изменило ситуацию. Я сейчас использую 32 бита.

lovinglinux
источник
1

Я использую Ub64 в чипе AMD64, я чувствую разницу в скорости. Это не большой импульс, но вы можете чувствовать. Почему бы вам не попробовать по 10 секунд для каждого и не сравнить себя в своей собственной системе (в чем суть вопроса)? Я уверен, что вы не потеряете свое время, так как в наши дни установка очень быстрая. (ткс убунту! -)

Проблемы с Java / Flash тоже имеют "хорошие" обходные пути в сети ...

H_7
источник
1

Лично на моем рабочем столе я использую 64-разрядную версию, поскольку она поддерживает более 4 ГБ ОЗУ. Вы также получаете повышение скорости. Я знаю, что вы также можете оптимизировать 32-разрядную версию, чтобы можно было обнаружить 4 ГБ оперативной памяти или больше. Что касается вашего второго вопроса, 32bit - это имя i386, потому что именно Intel разработала 32-битную инструкцию / технологию, а AMD следует. Затем AMD разрабатывает 64-разрядную версию, а затем Intel догоняет или принимает эту технологию. Вот почему 64 бит это Amd64.

Jart
источник
1

Как и squallbayu, я надеялся, что 64-битная версия будет работать лучше, поскольку я только что купил весной 17-го года 17-дюймовую MacBook Pro Intel i-7 с 8-гигабайтным ОЗУ и 500-гигабайтной последней операционной системой Lion OS. К сожалению, после установки сначала 64, а затем 32 32-битная версия была более стабильной и гладкой. Я не связывал ничего со скоростью (минимальная разница). Поскольку я не эксперт, я действительно думаю, что преимущества 64-битной системы не будут заметны, пока разработчики программного обеспечения не научатся как использовать свою силу ..

Пит
источник
1

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

Информация Википедии о ZRAM:

zRam - экспериментальный (промежуточный) модуль ядра Linux. Ранее он назывался «compcache». zRam повышает производительность, избегая подкачки на диске и вместо этого использует сжатое блочное устройство в ОЗУ, в котором подкачка происходит до тех пор, пока не потребуется использовать пространство подкачки на жестком диске. Поскольку использование оперативной памяти быстрее, чем использование дисков, zRam позволяет Linux более активно использовать оперативную память при необходимости подкачки / подкачки, особенно на старых компьютерах с меньшим объемом установленной оперативной памяти.

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

Halta
источник
1

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

Я бы предложил использовать 64-битную версию.
Я не знаю программного обеспечения, которое нельзя использовать в 64-битной системе, и если вы хотите использовать 4 ГБ (или более) ОЗУ, вам нужно использовать 64-битную версию Ubuntu.

prophecy201
источник
У меня только 4 ГБ ОЗУ, все же лучше перейти на 64-битную версию? Ответы на этот вопрос были слишком техническими, чтобы я мог их понять. Спасибо
Cool_Coder
1
Используйте 64-битную версию. Я не думаю, что у вас будут проблемы с этим. Я использую 64 бит со всеми моими машинами и нет проблем.
пророчество2011
хорошо, спасибо за эту информацию. Я установлю 64-битную версию.
Cool_Coder
@Cool_Coder, единственная причина, по которой вы должны рассмотреть 32-битную версию, заключается в том, что вы работаете в компании, которая использует Juniper Networks Connect , VPN-систему на основе web / Java, которая работает только с 32-битной Java. Конечно, 32-битная Java может быть установлена ​​в 64-битной Ubuntu, но я считаю, что делать это немного больно. Кроме этого, я не знаю никакой другой причины отдавать предпочтение 32-битной Ubuntu на машине с 4 ГБ.
user68186
0

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

Пока поддерживается 32-битная поддержка систем UEFI, в настоящее время нет доступных стандартных 32-битных образов, которые загружаются в режиме UEFI.

LiveWireBT
источник