Наскільки важливим є наявність 64-бітних програм на 64-бітній ОС?


40

Нещодавно я оновив 64-бітну ОС (Windows 7) зі своєї старої 32-розрядної версії. Я помітив, що хоча в декількох додатках доступні 64-розрядні програми (наприклад, клієнт постійного струму, Tortoise SVN, графічний драйвер), багато з них все ще є 32-бітними програмами (наприклад, firefox, Adobe Reader).

Отже, наскільки важливо мати 64-розрядні програми (ефективні)? Я використовую свій ноутбук для багатьох речей, таких як ігри, кодування тощо.


1
Зачекайте, поки ви не почнете бажати грати у свої улюблені старі ігри з 16-бітними інсталяторами. Зворотна сумісність для них передбачена в XP64 / 32, Vista32 та 7 32, але не Vista64 або 7 64.
Ален

1
@Alain: Мені ніколи не вдалося застарілих ігор працювати на моїй 32-бітної ОС, так що це, мабуть, не дуже велика втрата.
apoorv020

1
Це якщо ви любите Master of Orion II та Populous початківців так само, як я;
Ален

Найбільше вдосконалення, яке я помітив з точки зору користувача, - це можливість завантажувати файли з більшим розміром, ніж 2 Гб. Особливо робота з великими зображеннями в програмному забезпеченні Adobe.
Svardskampe

@Alain, оскільки різні програмні засоби VM мають різний рівень підтримки аудіо / відео драйверів для старих ОС, навіть це не завжди буде працювати. У мене був чорт, коли змушували бігати Коштовності Oracle II .
Synetech

Відповіді:


35

Я не думаю, що важливо мати 64-бітні програми самі по собі.

Перевага 64-розрядної програми полягає в тому, що він може:

  • Доступ до набагато більше пам'яті¹
  • Виконайте 64-розрядні операції з реєстрацією

64 64-розрядна програма може бути трохи швидшою (залежно від того, як вона працює). Якщо ваша програма не має пам'яті (наприклад, Photoshop, 3D-рендерінг тощо), то наявність 64-бітної версії надасть їй доступ до всієї пам'яті комп'ютера. Без цього він обмежиться десь близько 2 Гб. Це за кожною заявкою , тому два додатки можуть отримати доступ до 4 Гб.

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

Стійкість до стабільності не повинна мати різниці між 64-бітними та 32-бітними програмами.


Я думаю, що мій клієнт DC робить хешування файлів із значно покращеною швидкістю.
apoorv020

Це має сенс, якщо він робить хеши. Деякі з них можна оптимізувати на більших ширинах бітів.
Джошуа Нурчик

Можна також зробити припущення про здібності процесора за допомогою x86-64, як-от підтримка SSE3.
afrazier

4
За замовчуванням програми, що працюють в 32-розрядної Windows, матимуть доступ до 2 Гб пам'яті. Операційна система в цілому має доступ до загального обсягу трохи більше 3 ГБ, яким можна ділитися всіма програмами.
Майкл Стіл

@Michael Steele має рацію. Максимально доступна пам'ять для системи, як правило, становить 3,12 Гб, решта зарезервована для адресного обладнання. Більш детальний рахунок дивіться тут: support.microsoft.com/kb/929605
Стівен Еверс

10

Найбільша перевага від використання 64-бітного додатка на 64-бітній ОС полягає в тому, що ви маєте повний доступ до всієї пам'яті, наявної в системі. Із 64-бітовою адресою пам'яті програма може отримати більше пам'яті, ніж її 32-бітний еквівалент.

Крім того, 64-бітні програми будуть працювати «краще», ніж 32-бітні, оскільки вони використовують вбудовану архітектуру системи. Такі операції, як зчитування пам’яті, виконуються в основному і т. Д. Це означає, що ОС не повинен виконувати зайвих робіт, «перекладаючи» (упаковка / розпакування пам’яті тощо) команд, якими користується програма.

Однак більшість програм - такі як Firefox, Word, Adobe Reader тощо - проводять більшу частину свого часу в очікуванні введення користувачем, тому ефективність не обов'язково є головним питанням. Крім того, більшість цих програм (на даний момент) не потребують додаткової пам'яті, що перехід на 64 біт дасть їм доступ.

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


1
У багатьох випадках системні драйвери повинні бути 64-розрядними, якщо їм буде потрібен доступ до певних регістрів пам'яті. Я вірю, що речі з Certan будуть працювати з 32-бітовими драйверами на 64-бітній системі, але нічого інтенсивного, як відеокарта
Джошуа Нурчик

1
@Joshua: Системні драйвери дійсно залежать від ОС та машинної арки. Деякі 64-бітні процесори не мають режимів, лише додані 64-бітні інструкції. x86_64 має дорогий перемикач режимів, щоб отримати від 64 до 32 і назад, тому драйвери майже завжди повинні бути 64-бітними.
Zan Lynx

Поясніть, будь ласка, що ви маєте на увазі під роботою "краще".
glenviewjeff

5

Так, ви можете без проблем запускати 32-бітні програми в 64-бітовій операційній системі, АЛЕ Є ще одна проблема витрачання місця - бібліотеки. В основному додаток завантажує відповідну йому бібліотеку, але проблема полягає в тому, що 64-бітні бібліотеки не сумісні з 32-бітовими, і навпаки.

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

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

Отже, для економії простору оперативної пам’яті та жорсткого диска - спробуйте запустити та встановити додатки лише для 64 біт та встановити 32-бітні, лише якщо не вдалося знайти 64-бітну версію. Зараз все більше і більше додатків поставляються в обох версіях.


4

Відповідь "це залежить"

Деякі 32-розрядні "програми" не працюватимуть у 64-бітному режимі, наприклад графічні драйвери та розширення оболонки (наприклад, Tortoise SVN). У такому випадку вам потрібна 64-бітна версія.

Для інших звичайних додатків це залежить від того, що вони роблять.

Якщо у вас, наприклад, є 16 Гб пам'яті і ви працюєте на SQL сервері з надзвичайно великою базою даних, то наявність 64-бітної версії SQL дуже важлива.

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

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

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

За даними Process Explorer, у мене зараз запущено 25 64-бітних процесів та 28 32-бітних процесів, ігноруючи Chrome)


3

Майте на увазі, що в 64-розрядних Windows 32-розрядні програми виконуються через емуляційний шар, відомий як WOW64 , який накладає деякі додаткові обмеження, відсутні під час роботи в 32-розрядної ОС Windows.

З https://msdn.microsoft.com/en-us/library/aa384219(v=vs.85).aspx :

Продуктивність та споживання пам'яті в рамках WOW64

  • Обладнання процесора. Емуляція інструкцій виконується на мікросхемі. На процесорі x64 вказівки виконуються наново мікро-архітектурою. Тому швидкість виконання під WOW64 на x64 аналогічна швидкості в 32-розрядної Windows. На процесорі Intel Itanium в емуляції бере участь більше програмного забезпечення, в результаті чого продуктивність погіршується.
  • API загрожує накладними. Цей накладний невеликий порівняно з самим викликом ядра NT. Функції ядра NT покликані називати нечасто.
  • Розмір віртуальної пам'яті. На процесорі Intel Itanium WOW64 додає значні накладні витрати, якщо одночасно працюють два або більше екземплярів одного 32-бітного додатка. Це пов’язано з нативними сторінками 8 Кб на Intel Itanium, що ускладнює емуляцію нативних сторінок 4 Кб в архітектурі x86 (більше сторінок позначено як для запису; всі сторінки, що записуються, є приватними для процесу). Це може негативно вплинути на масштабованість послуг Terminal на певних процесорах. Це не стосується процесора x64.
  • Робочий набір. WOW64 збільшує розмір робочого набору програми.

  • WOW64 дозволяє 32-бітним програмам скористатись 64-розрядним ядром. Тому 32-бітні програми можуть використовувати більшу кількість ручок ядра та ручок вікон. Однак 32-розрядні програми можуть не в змозі створити стільки потоків під WOW64, скільки можуть, коли вони функціонують в оригінальних системах на базі x86, оскільки WOW64 виділяє додатковий 64-бітний стек (зазвичай 512 КБ) для кожного потоку. Крім того, деяка кількість адресного простору зарезервована для самого WOW64 та використовуваних ним структур даних. Зарезервована сума залежить від процесора; більше зарезервовано на Intel Itanium, ніж на процесорі x64.


+0. Які ці обмеження? Будь ласка , змініть свій відповідь і пояснити.
незабутнійід

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

+1. Дякуємо за вашу редакцію! Я спробував опублікувати новий варіант запитання, але він закрився як "занадто широкий". Наскільки я знаю, всім відкритим версіям цього питання, всюди в Супер Користувачі, принаймні шість років.
незабутній

1

Давайте не скорочувати це. 64-бітні скелі. Якщо ви зможете його отримати, використовуйте. Visual Studio, SQL Server (навіть просто з використанням лише студії управління) усі користуються 64-бітною версією. Ви не можете сказати, що цього не варто. Ні, це не є необхідністю, але ми повинні прагнути підвищити швидкість роботи розробників та інших користувачів (навіть нетехнологів, які використовують прості MS Word) ноутбуків та ноутбуків. Чому б не скористатися і просувати і не розмовляти 64-розрядною у вашій компанії? Насправді це вже не таке нове ... це стає або було звичним явищем.

Смішно говорити, що ви не отримуєте великої користі від 64-розрядних, так як смішно говорити мені, що додавати 4 гіги, щоб виконати загальну кількість 8 концертів на будь-якому ноутбуці, будь-який користувач цього не вартує. Це лише черговий приклад жадібних адміністраторів або корпорацій ІТ-мережі, де модернізація до 64-розрядних програм у більшості випадків зазвичай безкоштовна, і тоді для оперативної пам'яті це смішно дешево і покращує продуктивність вашого користувача в два рази.

Тому ні, це не обов'язково, але повинно бути обов'язковим. Мені не подобаються мінімалісти, коли мова йде про такі інструменти, як настільні та ноутбуки.

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

Якби 64-розрядна проблема була такою проблемою, то більшість настільних ПК та ноутбуків сьогодні не переходитимуть до 64-розрядної Win 7. Наша вся компанія висуває 64-розрядний Win 7 Pro для ВСІХ користувачів (понад 100,00 співробітників)


Було б корисно, якби ви могли пояснити конкретно, що таке «рок» щодо 64-бітових. Технічне пояснення - це те, чого тут шукають.
glenviewjeff

Тож додавання 4гг до машини, яка ніколи не займала більше пам’яті, ніж раніше, має сенс? Гаразд, якщо ви знаєте, що ви могли б використовувати його, якщо це буде доступно, але ще це просто непотрібно. Це не має нічого спільного із жадібністю, але просто тим, що ви можете вкладати гроші в речі, які можуть мати більше сенсу. Оновлення процесора майже в будь-якому випадку принесе переваги. Не кажучи про те, що багато оперативної пам’яті - це погана річ (у мене є 16 Гб), але я не став би модернізувати свій старий ноутбук до 8 ГБ, оскільки 4 ГБ дуже добре тримають мою інсталяцію Arch! 64bit, хоча, що-н. що справді в більшості випадків є перевагою pf, саме так
larkey

0

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

Однією з питань, на яку слід бути обережними, є те, коли програма має 64-бітну версію, яка має слабку підтримку сторонніх розробників. Я думаю про Excel 2010, який доступний у 64-бітовій формі. Excel 64 сам по собі працює чудово, але лише кілька сторонніх розширень та доповнень вже перенесені. В якості іншого прикладу розглянемо Python в Windows. Знову ж таки, кілька важливих непрофільних модулів недоступні або важко отримати в 64-бітовій формі.

Таким чином, якщо вам справді не потрібно 64-розрядної програми для відповідного додатка, ви часто можете бути безпечнішим при дотриманні 32-бітної версії.

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