私のシステム(debianx64)では、ページサイズは4096バイトです。それを減らす可能性はありますか?私はメモリにたくさんの小さな断片を保存したいと思いますが、1バイトの予約でさえ、ここでは1番目のメッセージに追加されたもののために別の4095を使うことはできません。 それは本当ですか、それとも間違っていますか? できますか? 返信用のThx。C++メモリページサイズを4096バイトから減らす
3
A
答えて
10
4096は、x86プラットフォームで提供される最小のページサイズです。これはCPUによって課される制限です。より大きなサイズ(モードに応じて最大4MB)を提供しますが、これは通常ブート時にオペレーティングシステムによって選択されます。
あなたはになります。は、object poolのバッキングストアとして比較的大きな割り当てを行います。多くの小さなオブジェクトが必要な場合、それらはすべて単一のページまたはメモリ領域内に格納することができます。これは、メモリ割り当てのパフォーマンスを向上させるための共通の慣用表現です。
さらに、ほとんどのsaneメモリアロケータはこのように動作します。したがって、必要なプロファイリングが見つからない限り、オブジェクトプールを実装する必要はありません。
1
ページサイズはOS全体のアイテムです。ページフォルトロジックは他のすべてのプロセスで動作する必要があるため、アプリケーションの新しいページサイズを作成するだけでは不十分です。
あなたは何をしようとしているのかよく分かりません。私はあなたがこの問題を心配している場合でも、配列のようにメモリを連続して保存してアクセスすることで、ソフトウェアをよりキャッシュに適したものにする必要があると言います。
1
状況によってはページサイズ(x86プラットフォームでBTWを4K以下に下げることはできません)はおそらく無関係です。ヒープにデータを割り当てると、ページサイズの問題は、あなたが想定している方法では発生しません。
関連する問題
- 1. C - バイトから
- 2. サーバーリソースを減らし、PHPのコンパイルをC++に減らす
- 3. WPF、C#、 "Textrange.save"メソッドは、4096バイトの ".textファイル"しか保存できません。
- 4. Windowsのメモリページは常に4096バイトのストライドにありますか?
- 5. シリアルポートからバイトを読むC++ Windows
- 6. C:バイナリファイルからバイトを読み取る
- 7. はC++で4バイトから3バイトに変換します
- 8. メモリ使用量を減らす、C、CodeChef
- 9. c#mongo 2.0 FindAsyncのトラフィックを減らす
- 10. ビットシフト2バイトのcから配列
- 11. linuxからwindows C++バイト配列
- 12. CythonのバイトからCのchar *
- 13. C++からC#にバイト配列を返すには
- 14. バイト配列をマネージC++からc#にマーシャリングするには
- 15. Cビット操作/ 1バイトから別のバイトへのコピー
- 16. 4バイトから10進数 - C#Windevから
- 17. アセンブリからバイト
- 18. スイッチからのケース数を減らす
- 19. H1からバックグラウンドを減らすには?
- 20. メインテーブルから数量を減らす
- 21. ペイロード4096バイトにregistration_idの長さが含まれていますか?
- 22. const char *からバイト配列にコピーするC++/c#interop Marshal :: Copy
- 23. reallocを減らす
- 24. 減らす
- 25. JavaScriptファイルからバイト[]
- 26. バイトからネットワークへ
- 27. eigen:3Dベクトルからスカラーを減算するC++
- 28. "readonly"(C#)はメモリ使用量を減らしますか?
- 29. ML-Yacc Tiger Parserエラーを減らす/減らす
- 30. gnuplot行列のティックラベルの数を減らす/減らす方法
重複http://stackoverflow.com/questions/4420891/c-new-new-how-is-it-allocating-memory。 – Nate