ソフトウェア エンジニア/コンピューター サイエンスの特定の分野で、64 ビット システム向けの開発に際立った違いはありますか? 私はコーディングを約 10 年間行っていますが、64 ビット システムが崩壊して以来、私のコードは 1 ビットも変わっていません。
1 人のコーダーがサイド プロジェクトとしてコーディングできるアプリケーションのうち、64 ビット テクノロジを使用する必要があるものはどれですか?
ソフトウェア エンジニア/コンピューター サイエンスの特定の分野で、64 ビット システム向けの開発に際立った違いはありますか? 私はコーディングを約 10 年間行っていますが、64 ビット システムが崩壊して以来、私のコードは 1 ビットも変わっていません。
1 人のコーダーがサイド プロジェクトとしてコーディングできるアプリケーションのうち、64 ビット テクノロジを使用する必要があるものはどれですか?
4 GB を超える作業メモリとプログラム メモリを必要とするものはすべて、32 ビット システムが直接アドレス指定できるメモリの最大量であるため、確実に対象となります。
CPU レジスタには 64 ビットの数値を格納できるため、これらのサイズの数値を必要とする計算ではパフォーマンスが向上します。
最近、内部で使用されているライブラリの一部を64ビットに移植しました。Cコードはまったく変更されていません。リンク先のサードパーティライブラリの64ビットバージョンを入手して、使用する必要のある新しいコンパイラ指令を特定する必要がありました。最大の頭痛の種は、依存関係の64ビットバージョンを見つけ、32ビットと64ビットの両方を処理するようにビルドシステムをリファクタリングすることでした。
それは、他のソフトウェアが変更を必要としないということではありません。たとえば、単語の境界内に収まるようにデータをパックする場合、64ビットシステム用にプログラミングするときに、別の方法でデータをパックする傾向があるかもしれません。
アドレス空間や大きな計算は別として、ワードサイズを2倍にすることは、低レベルのもので、そして主にカーネルハッキングやデバイスドライバーの作成を行う予定の人々にとってより役立ちます。たとえば、ネットワーク接続からのバイトのストリームがあり、それらを処理する必要があるとします。これらのバイトをメインメモリからCPUレジスタに一度に4つではなく8つプルできるようになりました。ただし、これを利用するには、「64ビット対応」の文字列ライブラリが必要だと思います。
ちなみに、同じハードウェア(64ビットマシン)で32ビットSQLServerから64ビットSQLServer(2005)にアップグレードすると、パフォーマンスが向上することがわかりました。
質問する必要がある場合は、おそらくintのサイズに関する仮定をコードに組み込んでいないため、利点は得られないでしょう。かなり少数のユースケースであり、すべてかなり低レベルであるため、スピードアップが見られます。非常に大きな数でのBignumおよび重整数演算は(暗号のように)より高速になります。