web-dev-qa-db-ja.com

32ビットと64ビットの違いは何ですか?どちらを選択すればよいですか?

32ビットUbuntuと64ビットUbuntuの違いは何ですか? 64ビットプラットフォームのパフォーマンスが向上し、4 GBを超えるRAMを検出できると聞きました。また、一部のアプリはまだ64ビットに移植されていませんが、ia32-libsを使用すると、64ビットマシンで実行できます。

もしそうなら、64ビットを32ビットよりもプロモートしませんか?

142
squallbayu

32ビットと64ビットを選択する際の主な質問は、「私のプロセッサは64ビットをサポートしていますか?もしそうなら、64を使用すべきです」とは思いませんが、」 「

64ビットプログラムは、32ビットプログラムよりも約50%多くのメモリを使用します。この結果は次のとおりです。

  • プロセッサキャッシュに収まるコード/データが少ない->キャッシュミスが多い->メモリコントローラーがRAMからデータをフェッチするまでの超高速プロセッサの待機時間が長くなります。プロセッサは、データがより肥大化しているため、moreデータも読み取る必要があります。

  • Linuxは、割り当てられていないRAMを使用してディスクをキャッシュします。使用可能な空きメモリが少ない->ディスクキャッシュ用のスペースが少ない->ディスクアクセスが遅い

  • RAMから出て、システムがスワッピングを開始すると、ディスクアクセスはRAMの数千倍遅くなるため、64ビットコードの潜在的な利点(以下を参照)はウィンドウから飛び出します。

一方、64ビットモードのプロセッサにはより多くのレジスタがあるため、メモリにアクセスする必要はありません。また、一部の計算(64ビット数など)がより効率的であることがよくあります。したがって、一般に、メモリ制限されていないコードは、64ビットモードでわずかに高速に実行されます。

そのため、たとえばシステムのRAMが2GiB以下であれば、32ビットを確実に選択します。 4GiB以上-64ビットの利点が顕著になりつつあります。 4GiBの周りは「グレーゾーン」です。自分で選択する必要があります。

以下は、1GiB RAMのVirtualBoxで実行されている(かなり古い)Vanilla Ubuntuのスクリーンショットです。

32ビット:は、起動直後にRAMの388 MiBを使用し、追加のアプリケーションは実行されていません(スクリーンショット397780KiB、388MiBから)

32 bit Ubuntu

64ビット:は491 MiBのRAMを使用します(スクリーンショットから、503452KiB = 491MiB)

64 bit Ubuntu

さらに、私のテストでは、Pythonで記述されたWebアプリケーションが64ビットマシンで最大60%のメモリを使用したため、32ビットマシンで380秒で実行されるテストスイートになりましたが、 64ビットの場合は523秒(両方とも1GiBのRAM)。マシンがRAM制限されていない場合、結果は異なる可能性があります(phoronixテストが示すように)。

以下は、より詳細で最近のテストです。 http://kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods

mem freemem usedswap used

基本的には、CPU速度10%の可能ゲインと引き換えにRAMの30%を放棄するようなものです。

147
Sergey

技術的な詳細を学習する必要がない場合は、推奨される32ビットバージョンを選択してください。

客観的に気づきにくい場合でも、64ビットは一般に高速です。これは、64ビットのデータ幅とは関係ありませんが、命令セット全体で8個以上の共通CPUレジスタを16個使用できるためです。これにより、管理のためにより多くのメモリを浪費し、より大きなポインタを使用することの欠点は、ほとんど平準化されます。

実際的な問題:すべての人がAMD64互換のCPUを持っているわけではありません。標準のi686バージョンで64ビットをプロモートすると、ユーザーの不満が高まります。したがって、今後数年間は、平均的なユーザーに32ビットバージョンを提示することで混乱が少なくなります。 64ビットバージョンはすぐに利用できるため、知識のある人にとってはまったく問題ではありません。また、AMD64ユーザーには、最初のダウンロードを除いて、そのような状況からの不利益はありません。すべてのパッケージは両方のアーキテクチャで利用可能です。

このような状況では、Ubuntuのダウンロードページは問題なく表示されます。 「32ビット(推奨)」と表示されますが、「推奨」とは「コンピューターの技術的な詳細がわからない場合は問題が少ない」という意味です。ネットブック版のダウンロードページでは、Intel atom CPUの一部は2010年でも32ビットのみであるため、選択すらできません。
したがって、結論として、互換性の問題を回避することはまだ必要だと思います。ただし、-64は-32よりも高速で、ターゲットシステムがサポートしている場合はIF(ただしIFのみ)を推奨するという線に沿って、少なくとも光沢のある脚注があることに同意します。

22
mario

32ビットおよび64ビットという用語は、コンピューターのCPUが情報を処理する方法を指します。 64ビットバージョンは、32ビットシステムよりも効果的に大量のRAMを処理します。 1

  • 64ビットOSを実行するには、64ビットCPUからのサポートが必要です。
    • 64ビットアプリケーションを実行するには、64ビットOSと64ビットCPUの両方からのサポートが必要です。

一般的な規則は、32ビット(OSおよびアプリケーション)は64ビットで実行されますが、64ビット(OSおよびアプリケーション)は32ビットで実行されないということです。

  • 32ビットOSは、32ビットまたは64ビットプロセッサで問題なく実行されます。
  • 32ビットアプリケーションは、32ビットまたは64ビットOSで問題なく実行されます。
  • ただし、64ビットアプリケーションは64ビットOSでのみ実行され、64ビットOSは64ビットプロセッサでのみ実行されます。

64ビットOSをインストールするには、64ビット互換CPUが必要です。 PCの製造元に問い合わせて、システムに64ビット互換性があるかどうかを確認してください。

32ビットシステムには4ギガバイトのRAMメモリ制限があります。これは、システムに4GBを超えるRAMがインストールされていてもアドレスできないことを意味します(すべてが使用されるわけではありません)。回避策はありますが、平均的なユーザーにとっては困難です。

注:Ubuntu 12.10以降では、PAEが自動的にサポートされます。 12.10より前には、CPUに応じてPAEサポートを選択するオプションがあります。 PAEは、32ビットの最大RAMを64GBに拡張します。詳細な情報は こちら

64ビット版には、帯域幅の増加、ハードウェア対応DEP(データ実行防止)、カーネル保護の強化など、追加の利点があります。

32ビットアプリケーションの大部分は64ビットシステムで引き続き動作しますが、一部のアプリケーションはまったく動作しないか、実行速度が遅くなります。

詳細については、 2ビットおよび64ビット をご覧ください。

1ソース: Microsoft

18
Mitch

先ほど指摘したように here in Phoronix : "Ubuntuのマルチアーキテクチャの状況が解消され、ほとんどのアプリケーションとプラグインは64ビット(Adobe Flashなど)およびJava)、および64ビットは通常32ビットよりはるかに高速であるため、x86_64バージョンに移行しない大きな理由はありません。」

discussed ですが、32ビットの代わりに64ビットがデフォルトとして示される場合、最初のパフォーマンスがいくらか向上すると思います。 これらのベンチマーク を参照してください。

Phoronix からの「低」RAMメモリの言葉: "[S] Ubuntu開発者の中には、32ビットネットブックがまだ存在しているシステムやx86_64ソフトウェアを使用するとメモリが不足してSWAPの使用量が増加する可能性がある2 GBのRAMしかありませんが、大多数のユーザーにとっては、64ビットの世界でははるかに優れています。 」

たぶん、それをインストールして、システムが頻繁にスワップを使用するかどうかを見ることができます。

10
desgua

私にとって最も重要なのは、32ビットOSでvmallocの制限により(PAEまたは非PAEに関係なく)ZFSファイルシステムを使用できないという事実です。それが私が64ビットに再インストールする理由でした。 NVIDIAでさえ、「トラブルシューティング」ページにvmallocのことに関する行がほとんどなく、ユーザーに64ビットカーネルへの切り替えを促すことで終わります。

32ビットモードでは1GBのアドレス制限があります。したがって、最大4GBを使用できる場合でも、1GBのみが「低」と呼ばれ、残りは「ハイメモリ」であり、一般的ではありません。そして、最近では1GBは本当に小さい数字です。#free -lを試してください

3
coro

しばらく前に、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 =

基本的に、4GB以下であれば問題ありません。4GBを超える場合は、i386-paeまたはAMD64の使用を検討してください。 64ビットシステムはより多くのメモリを消費します(たとえば、ポインターのサイズは64ビットです)が、64ビットコピーを使用する最適化または64ビットモードで使用可能な追加のCPUレジスターを使用する最適化により、64ビットシステムでパフォーマンスが向上する場合があります。

3
Colin Ian King

前のポスターで述べたように、64ビットと32ビットは、コンピューターによる1回の操作で移動できるデータのサイズを指します。これは、CPU上のレジスタのサイズとバスの幅に関連しています(レジスタはCPUが動作するためのデータを保持するだけで、コンシューマハードウェアでは小さく、ホームコンピューティングの開始以来成長してきました。バスはマザーボードのさまざまな部分を一緒に接続し、データが流れる高速道路です。

問題は、ほとんどのOSが64ビット操作に移行するときに実際の問題を抱えていたことであり、ドライバーとアプリケーションのサポートが不十分です。多くの場合、アプリケーションは実際には初期バージョンでさらに悪いのパフォーマンスがありました。ほとんどの人がディープエンドにジャンプする本当の理由がないことを考えると、Linuxの力は、cough _other_ OSesよりも少し遅く、ゆっくりですが安定しているように見えます。

2
Jeremy

わかりやすいユーザーエクスペリエンスのために、Ubuntuの公式サイトでは、より柔軟なチューニングのために32ビットバージョンを推奨しています。
ここでカウントするのは、データの一貫性も意味します。

proとcontraには非常に多くのポイントがあります。私の考えでは、64ビットソフトウェアとドライバーの使用に直接関係するIntel Architecture 64ビットプロセッサでの64ビットOSの優れたパフォーマンスは、通常の32ビットパフォーマンスに勝るチャンスを与えてくれます。

64ビットOSで32ビットソフトウェアを使用すると、パフォーマンスが低下したり、場合によってはオーバーヒートしたりすることがあります。

ただし、署名されたコンポーネントとこの参照によって:
インテル®拡張メモリ64テクノロジー:64ビットデスクトップコンピューティング
...4Gb +のメモリでより良い体験が可能です。

私はこれがあなたにとって良いと非常に高価なソリューションではないことを数えます。

そして、両方のシステムを並行して使用することで、設定の意味と汎用性をより明確に理解できるようになります。

2
swift

基本的に、必要に応じて64ビットバージョンを使用すると言います。

主にウェブの閲覧、YouTubeの視聴、Facebookでのハングアップ、映画の視聴などを行う場合は、32ビットの方が優れています。これらのことを行うのに優れたハードウェアは必要ないからです。

Steam、WINEなどでゲームをプレイする場合、プログラムのロードを実行する場合、メディア編集を行う場合などは、64ビットが最適です。

カジュアルな使い方で32ビットOS、高度な使い方で64ビットバージョンを使用します。

2
user241367

他のコミュニティメンバによって優れた形で述べられた違いは別として、RAMが心配な場合は、常に zRAM。 をインストールできます。

ZRAMに関するウィキペディアの情報:

zRamは、Linuxカーネルの実験的(ステージング)モジュールです。以前は「compcache」と呼ばれていました。 zRamは、ディスク上のページングを回避することでパフォーマンスを向上させ、代わりに、ハードディスクドライブのスワップスペースを使用する必要があるまでページングが行われるRAMの圧縮ブロックデバイスを使用します。 RAMを使用するとディスクを使用するよりも高速になるため、zRamを使用すると、特にRAMの少ない古いコンピューターで、スワップ/ページングが必要な場合にRAMをより多く使用できますインストール済み。

RAMハードウェアのコストは比較的低くても、この機能はネットブックやその他の低電力ラップトップ、仮想化、組み込みデバイスの場合、特に寿命が限られているフラッシュメモリを使用する場合に利点があります。 、書き込みの使用に依存するため、スワップデバイスとして使用するとすぐに消耗します。

1
Halta

AMD64チップでUb64を使用していますが、速度の違いを感じることができます。それは大きな後押しではありませんが、感じることができます。なぜあなたはそれぞれに10秒間試してみて、あなた自身のシステム上で自分で比較しませんか(質問のポイントです)?最近はインストールが非常に高速であるため、時間を無駄にすることはないでしょう。 (tks Ubuntu!-)

Java/Flashの問題には、ネットの周りにも「良い」回避策があります...

1
H_7

私のデスクトップでは、4GB以上のRAMをサポートしているため、64ビットを実行しています。また、速度が向上します。 32ビットを最適化して4GB以上のRAMを検出できることもわかっています。 2番目の質問については、32ビットはi386という名前です。これは、Intelが32ビットの命令/技術を開発し、AMDがそれに追随したためです。 AMDは64ビットを開発し、Intelはそのテクノロジーに追いつくか、採用しました。 64ビットがAMD64である理由です。

1
jart

32ビットと64ビットは、メモリのチャンクのサイズ(または幅)、またはより正確にはコンピューターのCPUのメモリレジスタを指します。これは、プロセッサーが1回の操作で処理できるデータ量を定義します。 32ビットと64ビットは、メモリのチャンクのサイズ(または幅)、またはより正確にはコンピューターのCPUのメモリレジスタを指します。これは、プロセッサーが1回の操作で処理できるデータ量を定義します。はい、それは64ビットバージョンがより多くのデータを一度に処理できるため、より速く動作することを意味します。

1
Martin Zeltin

正直に言って、プログラムのコンパイルとビデオのエンコードに必要な時間をわずかに短縮したことを除いて、私は違いを感じていません。それ以外は、私には同じように感じています。 thoに気づきましたが、パフォーマンスの面で実際に違いを生じるのはビデオドライバーです。 32ビットのビデオドライバーがより適切にサポートされていると思います。最近、最新のnVidia 260ドライバーを32ビットシステムにインストールしましたが、これは大きな違いをもたらしました。現在32ビットを使用しています。

1
lovinglinux

Squallbayuのように、2011年春に17インチMacbook Pro intel i-7 8ギグRAM 500ギガバイトハードドライブ最新のLion OSを購入したばかりだったので、64ビットがより良く機能することを望んでいました。 64ビットと32ビットの両方が32ビットをより安定的かつスムーズでした..私は速度とは何の関係もありませんでした(最小限の違い)私は専門家ではありませんが、64ビットの利点は本当にないと思いますソフトウェア開発者がその力を活用する方法を学ぶまで、注目してください。

1
Pete

この問題が提起されてから、32ビットと64ビットの違いは変わっていません。

64ビットバージョンを使用することをお勧めします。
64ビットシステムで使用できないソフトウェアはありません。4GB(またはそれ以上)のRAMを使用する場合は、64ビットを使用する必要がありますUbuntuのバージョン。

1
prophecy201

より多くのメモリと可能な速度の改善に対処できることとは別に、新しいEFI対応が付属する64ビットバージョンをダウンロードしてインストールする必要がありますWindows 8またはWindowsの新しいバージョン。

UEFIシステムの32ビットサポートに取り組んでいますが、現在、UEFIモードで起動する標準の32ビットイメージはありません。

0
LiveWireBT