64ビットシナリオでのSmalltalkのサポートレベルは2つあるようです。
- 64ビット用の仮想マシン
- 64ビットの仮想イメージ
64ビットイメージのSmalltalkの実行速度が32ビットイメージよりも大幅に遅いかどうかはわかりません。よろしければ、あなたの経験についてコメントしてください。両方(64ビットVM +イメージ)または64ビットVMのみをサポートするSmalltalk実装はありますか?
きしむための古い64ビットイメージとVMがあります。Esugでは、Pharoの64ビットサポートを取得するようにプッシュしましたが、それはゆっくりと進んでいます。[編集]そして、Linuxx86用の実験的な64ビットのsqueakvmとイメージがあることがわかりました。[/ edit]squeakvmはコグ前のものでした。Eliot Mirandaは、64ビット用の新しいバイトコードセット/画像形式に取り組んでいます。それが終わったら、Pharo、Squeak、Newspeakがそれに移行すると思います。
64ビットイメージは32ビットイメージよりも実行速度が遅くなる可能性がありますが、これはおそらくほぼ一定の要因であるため、コンピューターの速度が向上し続けるにつれて、関連性が低下します。さらに重要なのは、大量のRAMを使用できるため、開発者は時空間のトレードオフを行うことができるということです。つまり、彼の時間とラムのコストの間です。西ヨーロッパと米国では、4GBのエンジニアリング時間は1時間未満です。
より大きなイミディエートオブジェクト(2 ^ 62/63までのsmallints、smallfloats?)を使用する場合、64ビットイメージの方が高速になる可能性があります。Gemstoneには、はるかに優れたスケーリングのコレクション実装があり、元の実装は単一の配列をバッキングストアとして使用します。大規模なコレクションの場合、バッキングストアとして少なくとも配列の配列が必要です。
画像内のすべてのデータをロードしてから、分析、変換、クリーニング、およびエクスポートを開始することを強く希望するデータ変換をいくつか実行しました。ディスクから作業すると、プロセスが100分の1に遅くなります。これにより、フィードバックサイクルが数分から数時間または数日に短縮されます。それまではシステムについて十分に理解していないため、フィードバックサイクルは、特にプロセスを開始するときに非常に重要です。プロセスの後半でそれを分割できるかもしれませんが、それは単にそこにない知識を前提としています。
VisualWorks と GemStone の両方が実際の 64 ビット VM/イメージをサポートしていると思います
Linux 用の最新の 4.10 Squeak VM は 64 ビット イメージをサポートしています: http://squeakvm.org/unix/