У чому полягають відмінності між 32-розрядною та 64-бітною версією, і яку я повинен вибрати?


142

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

Якщо так, то чому б не просувати 64-розрядні над 32-бітовими?




Відповіді:


147

Я вважаю, що головним питанням при виборі між 32 та 64 бітами є не "Чи підтримує мій процесор 64 біт - якщо так, то я повинен використовувати 64, бо це вдвічі більше", а "Скільки у мене пам'яті?" .

64-бітні програми використовують приблизно 50% більше пам'яті, ніж їх 32-бітні аналоги. Результати цього:

  • менше коду / даних може вміщуватися в кеш-пам'ять процесора -> більше промахування кешу -> ваш надшвидкий процесор більше чекає, коли контролер пам'яті отримає дані з оперативної пам'яті. Процесору також потрібно прочитати більше даних, оскільки він сильніше роздутий.

  • Linux використовує не виділену оперативну пам'ять для кешування дисків. Менше вільної пам'яті -> менше місця для кеш-дисків -> повільний доступ до диска

  • Після того, як у вас немає оперативної пам’яті, і система починає мінятися - доступ до диска в тисячі разів повільніше, ніж оперативна пам’ять, тому будь-які потенційні переваги 64-бітного коду (див. Нижче) вилітають з вікна.

З іншого боку, у 64-бітному режимі процесор має більше регістрів, тому йому не потрібно отримувати доступ до пам'яті, що часто, також, деякі обчислення (64-бітні числа тощо) є більш ефективними. Таким чином, код, який не обмежений пам'яттю, працює трохи швидше в 64-бітному режимі.

Отже, якщо у вашій системі, скажімо, 2 Гбіт оперативної пам’яті або менше, я б точно вибрав 32 біти. Більше 4GiB - переваги 64 біт стають все більш помітними. Навколо 4GiB є "сіра зона" - вам потрібно зробити вибір самостійно.

Ось скріншоти (досить старої) ванільної Ubuntu, що працює у VirtualBox з 1GiB ОЗУ:

32 біт: використовує 388 MiB оперативної пам’яті відразу після завантаження, без запуску додаткових додатків (зі скріншоту, 397780KiB, що становить 388 Мбіт)

32-бітний Ubuntu

64 біт: використовує 491 МіБ оперативної пам’яті (зі скріншоту, 503452KiB = 491MiB)

64-бітний Ubuntu

Крім того, у моєму тестуванні веб-додаток, написане на Python, використовувало до 60% більше пам’яті на 64-бітній машині, що призвело до тестового набору, який працював у 380 секундах на 32-розрядній машині, але займав 523 секунди на 64- біт один (обидва з 1 Гбіт оперативної пам’яті). Якби машини не були обмежені оперативною пам’яттю, результати, ймовірно, будуть іншими (як показують тести форонікса).

Ось кілька більш ретельних та останніх тестів: http://kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods

пам'ять безкоштовно пам'ять використана використовується своп

В основному, це як відмовитися від 30% своєї оперативної пам’яті в обмін на можливий приріст 10% швидкості процесора.


1
Так 32-розрядні, 388М; 64-розрядні, 498M або приблизно 110M більше, і це 30% 2G ??
ірраціональний Джон

22
Я погоджуюся з цифрами, але не згоден з висновком. На 30% менше оперативної пам’яті для 10% покращеної продуктивності робить це справа століття! Більше того, набагато дешевше замітати додаткову оперативну пам’ять, ніж замінити процесор.
Олі

1
Так, я не погоджуюся з цим, але я б сказав про це сильніше і піти трохи далі, лише пропонуючи 32-бітний, якщо він не підтримується процесором або не в змозі оновити оперативну пам’ять (це давнє або ви збираєтеся викинути) . Люди з сучасним комп'ютером з <2 Гб повинні витратити $ 20-30 на ebay і мати 4 Гб. 10-відсотковий приріст того вартий.
Олі

1
Мені цікаво, як тут працюють сучасні браузери з великою кількістю відкритих вкладок і javascript. Я часто наштовхуюсь на своп (навіть із 8 Гб оперативної пам’яті), відкриваючи безліч вкладок, а сучасні веб-сайти використовують багато бібліотек javascript тощо. Як порівняти пам’ять та процесорний обсяг швидкості використання важкого хрому чи використання 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 є 32-бітними лише в 2010 році!
Отже, на закінчення, я думаю, що усунення проблем сумісності все ж необхідне. Однак я погоджуюсь, що по лінії слід мати хоча б блискучу виноску, яка на -64 швидша, ніж -32, і рекомендується ЯКЩО (АЛЕ ТАКОЖ) цільова система підтримує її.


1
Мені буде цікаво, коли будуть підтримані нові файли x32 та ABI, скільки 64-бітових програм перейде на цей ABI en.wikipedia.org/wiki/X32_ABI, щоб використовувати менше ресурсів та пам'яті та повністю використовувати процесор.
Емануеле

Якщо рекомендується 32-розрядна версія, то чому Wubi віддає перевагу 64-бітним ?
Дан Даскалеску

1
Тепер може бути рекомендовано 64-бітне nb ...
Вільф

5
Примітка читачам: Ця відповідь була написана понад 4 роки тому. Я б не рекомендував зараз встановлювати 32-розрядні, і я не думаю, що Ubuntu більше не рекомендував би його.
thomasrutter

Тепер це питання, яке вирішить трохи менше, ніж за рік, 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 Процесор повинен підтримувати PAE. Загалом, правильна 64-бітна система рекомендується, якщо у вас є 4 Гб або більше пам’яті та / або хочете отримати повну користь 64-бітної архітектури.
Мітч

Я розумію, але, як я вже сказав, процесор повинен підтримувати PAE, щоб він працював . Наприклад, Atom не підтримує PAE.
Мітч

Просто додав, що як замітку у відповіді.
Мітч

додав пояснення того, що PAE з джерелом. Сподіваюся, ви задоволені цим.
Алвар

10

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

Хоча обговорюється, якщо 64-бітний буде вказаний як за замовчуванням замість 32-бітового, я думаю, що у вас є певний приріст продуктивності з першим. Дивіться ці орієнтири .

І слово вашої "низької" оперативної пам'яті від Phoronix : "[S] ome Ubuntu розробники надто стурбовані тим, що 32-бітні нетбуки все ще існують, а також для систем, які мають лише 2 Гб оперативної пам’яті, коли використання програмного забезпечення x86_64 може призвести до запуску недостатньо пам’яті і, таким чином, збільшується використання SWAP. Однак для далекої більшості користувачів вони набагато краще в 64-бітному світі ».

Можливо, ви можете встановити його і подивитися, якщо система часто використовує своп.


3

Я переглянув це для Ubuntu Precision 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 біт os (незалежно від PAE чи nonPAE). Це було причиною для мене перевстановлення на 64 біт, і я ніколи не оглядався. Навіть у NVIDIA є кілька рядків про річ vmalloc на сторінках "усунення несправностей", що закінчується заохоченням користувачів перейти на 64-бітні ядра.

У 32-бітовому режимі обмеження дозволу на 1 Гб, тому навіть якщо він може використовувати до 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 Technology: 64-bit Desktop Computing
... можливий кращий досвід використання 4Gb + пам'яті.

Я вважаю, це хороше і не дуже дороге рішення для вас.

І так, використання обох систем паралельно може принести вам більш чітке розуміння вашої конфігурації та універсальності в значеннях.


2

В основному, я б сказав, використовуйте 64-бітну версію, якщо вона вам потрібна.

Якщо ви в основному переглядаєте Інтернет, переглядаєте youtube, бавитесь у facebook, дивитесь фільми тощо, тоді 32 біт краще, тому що для цього не потрібно хорошого обладнання.

Якщо ви граєте в ігри на Steam, WINE тощо, запускаєте безліч програм, виконайте деякі редагування медіа, і тоді 64 біт - найкращий вибір.

тому випадкове використання, то 32-бітна ОС, розширене використання, а потім 64-бітна версія.


1

32-розрядні та 64-розрядні стосуються розміру (або ширини) шматка пам'яті або, точніше, пам'яті реєструються в процесорі комп'ютера - це визначає, скільки даних може обробляти процесор за одну операцію. 32-розрядні та 64-розрядні стосуються розміру (або ширини) шматка пам'яті або, точніше, пам'яті реєструються в процесорі комп'ютера - це визначає, скільки даних може обробляти процесор за одну операцію. Так, це означає, що 64-бітна версія буде працювати швидше, оскільки вона може обробляти більше даних за один раз.


1

Якщо чесно, я не сприймав жодної різниці, окрім трохи скороченого часу, необхідного для складання програм та кодування відео. Крім цього, я відчуваю те саме. Я помітив, що те, що насправді має значення в продуктивності, - це драйвер відео. Я думаю, що 32-бітні відеодрайвери краще підтримуються. Нещодавно я встановив останній драйвер nVidia 260 на 32-бітну систему, і це зробило багато різниці. Зараз я використовую 32-бітний.


1

Я використовую Ub64 в чіпі AMD64, я відчуваю різницю швидкості. Це не великий поштовх, але ви можете відчути. Чому ви не спробуєте по 10 секунд для кожної з них і не порівнюєте їх самостійно за власною системою (в чому суть питання)? Я впевнений, що ви не будете втрачати свій час, оскільки інсталяція настільки швидка. (tks Ubuntu! -)

Проблеми з Java / Flash також мають "хороші" способи вирішення навколо мережі ...


1

Особисто на своєму робочому столі я працюю 64 біт, тому що він підтримує більше 4 ГБ оперативної пам’яті. Ви також отримуєте підвищення швидкості. Я знаю, що ви також можете оптимізувати 32 біт, щоб виявити 4 Гб оперативної пам’яті або більше. Щодо вашого другого 32-бітного питання - це ім'я i386, оскільки інтелекту, які девелополюють 32-бітові інструкції / технології та AMD, слідує Intel. Потім AMD розробила 64-бітну, а потім Intel наздогнала або прийняла цю технологію. Ось чому 64-бітний - це Amd64.


1

Як і squallbayu, я сподівався, що 64 біт буде працювати краще, оскільки я придбав 17-дюймовий MacBook Pro intel i-7 8 Gig RAM 500 Gig жорсткий диск останньої Lion OS навесні 2011 року. На жаль, після встановлення 64-х, а потім 32-х біт руками вниз 32-х бітний був більш стабільним і гладким .. Я не робив нічого спільного зі швидкістю (мінімальна різниця) Оскільки я не експерт, але я дійсно думаю, що користь від 64-розрядних не буде помічена, поки розробники програмного забезпечення не дізнаються як використати свою силу ..


1

Крім відмінностей, які чудово заявили інші члени спільноти, якщо вас турбує оперативна пам’ять, ви завжди можете встановити zRAM.

Інформація Вікіпедії про zRAM:

zRam - експериментальний (поетапний) модуль ядра Linux. Раніше його називали "compcache". zRam збільшує продуктивність, уникаючи підкачки на диску і замість цього використовує стиснений блок пристрою в оперативній пам’яті, в якому підказка відбувається, поки не потрібно використовувати місця для обміну на жорсткому диску. Оскільки використання оперативної пам’яті швидше, ніж використання дисків, zRam дозволяє Linux більше використовувати оперативну пам’ять, коли потрібна заміна / пейджинг, особливо на старих комп'ютерах з меншою встановленою оперативною пам’яттю.

Незважаючи на те, що вартість апаратного забезпечення оперативної пам’яті порівняно низька, ця функція все ще пропонує переваги для нетбуків та інших ноутбуків із меншим живленням, віртуалізації та у випадку вбудованих пристроїв, особливо тих, які використовують флеш-пам’яті з обмеженим терміном служби, залежно від використання при записі і, отже, швидко зношується, коли використовується як замінний пристрій.


1

Різниця між 32-бітною та 64-бітовою не змінилася з моменту постановки цього питання.

Я б запропонував використовувати 64-бітну версію.
Я не знаю програмного забезпечення, яке не можна використовувати в 64-бітній системі, і якщо ви хочете використовувати 4 ГБ (або більше) оперативної пам’яті, вам потрібно використовувати 64-бітну версію ubuntu.


У мене тільки 4 Гб оперативної пам’яті, все-таки краще йти з 64-бітної версією? Відповіді на це питання були для мене занадто технічними, щоб зрозуміти. Спасибі
Cool_Coder

1
Використовуйте 64-бітове видання. Я не думаю, що у вас будуть проблеми з цим. Я використовую 64 біт на всіх своїх машинах, і немає жодної проблеми.
пророцтво2011

добре, дякую за цю інформацію. Я встановлю 64-бітну версію.
Cool_Coder

@Cool_Coder, єдина причина, з якої слід розглянути 32-бітну версію, це якщо ви працюєте в компанії, яка використовує Juniper Networks Connect , VPN-систему на базі веб / Java, яка працює лише з 32-бітною Java. Безумовно, 32-бітний Java може бути встановлений у 64-бітному Ubuntu, але я вважаю, що це робить трохи болю. Крім цього, я не знаю інших причин віддавати перевагу 32-бітному Ubuntu на 4 Гб машині.
user68186

0

Крім того, щоб мати змогу вирішити більше пам’яті та можливі покращення швидкості, вам слід завантажити та встановити 64-бітну версію для нової машини з підтримкою UEFI, що постачається з Windows 8 або новою версією Windows.

Поки працює 32-бітова підтримка систем UEFI, в даний час немає стандартних 32-бітних зображень, які завантажуються в режимі UEFI.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.