私は現在FreeBSDでゲームを開発中です。私はclang
を32ビットバイナリとしてコンパイルしており、64ビットシステム(32GBのRAMをこのシステムで使用しています)で動作させていますが、4GBしか使用していないので、4GB以上のRAMを使用する必要があります。
複数のゲームインスタンスを実行しても、4GB以上のRAMにはアクセスできません。FreeBSDで32ビットアプリケーションで4GB以上のRAMを使用できます
また、64ビットシステムでコンパイルしようとしましたが、奇妙な動作があります。私はバグがたくさんある。
Windows上のVisual Studioには、/LARGEADDRESSAWARE
というオプションがあります。つまり、32ビットアプリケーションでRAMを増やすことができますか、間違っていますか?
バイナリでRAMをさらに使用できるようにするために、Windowsのように指定できるフラグはありますか?私はmcmodel=large
(またはmedium
)について何かを読んだことがありますが、これが私が探しているものではないかと思います。
クロスコンパイルはどうですか?誰かが私がそれについての良い情報をどこで見つけることができるか知っていますか?
ありがとうございます。
2^32/4GB == 1 –
"64ビットシステムでコンパイルしようとしましたが、奇妙な振る舞いをしています。多くのバグがあります。" - あなたはそれらのバグを修正したいと思うでしょう。自分で解決できない具体的な問題があれば、それは良い質問になるかもしれません。これはWindowsにも当てはまります: '/ LARGEADDRESSAWARE'はあなたのアプリケーションに4GB以上のアドレスを指定させません。 – hvd
メモリマップされたファイルを調べます。 – nwp