問題タブ [large-address-aware]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 32ビットWindows実行可能ファイルに/LARGEADDRESSAWAREを使用することの欠点は?
実行可能ファイルの1つは大量のメモリを使用するため、このフラグにリンクする必要があります。
しかし、なぜ1つのEXEファイルに特別な扱いをするのですか。標準化してみません/LARGEADDRESSAWARE
か?
/LARGEADDRESSAWARE
だから問題は、あなたがそれを必要としないとしても、使用することに何か問題がありますか?すべてのEXEファイルの標準として使用してみませんか?
c# - Visual Studio内からLARGEADDRESSAWAREを設定できますか?
32ビットである必要があり、である必要がある.NETアセンブリがあります/LARGEADDRESSAWARE
。
でこれを行う方法は知っていますがEditBin
、Visual Studio 2010に組み込みの方法があるのでしょうか?または、誰かがこのためのMSBuildタスクを作成しましたか?
編集:これはC#アプリ用なので、残念ながらリンカーオプションはありません:(
c++ - LARGEADDRESSAWARE によるポインター演算の検出
アプリケーションを に切り替えたいと思いますLARGEADDRESSAWARE
。注意すべき問題の 1 つは、ポインタの差を符号付き 32b として表すことができなくなったため、ポインタ演算です。
大規模な C++ プロジェクトでポインター減算のすべてのインスタンスを自動的に見つける方法はありますか?
そうでない場合、これを達成するための「最小限の労力」の手動または半自動の方法はありますか?
linux - Linux/64 ビット/LARGEADDRESSAWARE 相当
Windows では、PE ヘッダーにフラグを設定することで、アドレス空間の使用を 32 ビットの解像度に制限できます ( /LARGEADDRESSAWARE
)。詳しく説明すると、このフラグを設定すると、32 ビットの仮想アドレス空間環境が効果的にエミュレートされます (イメージは、戻りアドレス <= 0xFFFFFFFF に割り当てられます) にロードされます。
Linux には同等の機能がありますか?
c# - インストール後に LARGEADDRESSAWARE がオフになりましたか?
コマンドを使用しeditbin /LARGEADDRESSAWARE
て .NET C# exe を変更し、2 GB を超えるメモリをアドレス指定できるようにしました。これは正常に機能し、dumpbin
コマンドを実行して、正常に変更されたことを確認できます。
次に、この exe を含む .msi パッケージの作成に進みます。この .msi を Windows 7 ターゲット マシンで実行すると、exe が正常にインストールされます。しかしdumpbin
、ターゲット マシンにインストールされた同じ exe で実行すると、2 GB を超えるメモリをサポートしていないことがわかります。
これは何が原因ですか?ターゲット マシンで .msi をビルドするプロセスですか、それとも .msi を実行するプロセスですか?
c# - LARGEADDRESSAWARE 32 ビット OS で /3Gb なしですか?
まだ 32 ビットを使用している顧客がいるため、32 ビットでコンパイルされたアプリケーションがあります。
使用できる RAM が 2GB に制限されていることは承知しています。
最近、exe アプリケーションにフラグを立てて、このスペースを 3GB に増やすことができると言われました。これは、実行可能ファイルで次のコマンドを使用して行うことができます。
/3GB
また、boot.ini ファイルで設定する必要がある に関する情報もいくつか見つけました。
私の質問は次のとおりです。
- これは
/3GB
64 ビット OS で必要ですか? /3GB
LAA が有効になっているアプリケーションを使用して、スイッチを使用せずに 32 ビット OS を使用している場合はどうなりますか? 2GBしか使えないの?アプリケーションがクラッシュしますか?- 64 ビット OS を使用している場合、これは何か影響がありますか?
c++ - LARGEADDRESSAWARE フラグが設定されたアプリケーションで仮想メモリが少なくなる
1 つの EXE と複数の DLL で構成される 32 ビット アプリケーションがあります。EXE は、/LARGEADDRESSAWARE
フラグを設定してビルドされています。したがって、64 ビット OS では 4 GB のユーザー アドレス空間を取得する必要があります。しかし、一部の 64 ビット Win 7 システムでは、2 GB のユーザー アドレス空間しか得られません。
それが重要な場合、物理メモリは 8 GB です。この動作の理由は何ですか?
c++ - /3gb スイッチ (-GF LARGEADDRESSAWARE ) を使用して Win 7 64 ビットで 32 ビット Borland XE2 アプリを実行していますか?
タイトルが示すように、win 7 64 ビットで 32 ビット アプリケーションを実行しています。アプリケーションは、Embarcadero XE2 の C++ で作成されます。2GB 以上のメモリが必要です。
手順:
- 3GB スイッチを有効にして、PC を再起動しました。
- プロジェクト オプション/c++ リンカー/出力フラグに追加しようとし
-GF: LARGEADDRESSAWARE
ましたが、リンクに失敗しました。それは言った:「コマンドGFの失敗:」またはそのようなもの。
その後、フォーラムで、FLAGS セクションの .bpr ファイルで手動で行う必要があることを発見しました。フラグを追加してから、プロジェクトをリンクしました。ただし、アプリの使用可能なメモリ インジケーターは、まだ 2 GB を下回っていることを示しています。
質問:
- これを適切に機能させる方法は?
- メモリが 3GB かどうかを確認する方法を教えてください。