[解決済み] アリーナとは何ですか?
質問
プログラミングの概念としてのメモリに関する本を読んでいます。後半の章の一つで、著者はこの単語を多用しています。 アリーナ という単語を多用しますが、それを定義することはありません。 私はこの言葉の意味と記憶との関係を探しましたが、何も見つかりませんでした。 以下は、著者がこの言葉を使用しているいくつかの文脈です。
次のシリアライゼーションの例では、次のような戦略を取り入れています。 メモリ割り当てを特定の アリーナ .".です。
これはメモリリークに対処するときや、特定の場所からアロケートするときに便利です。 特定の アリーナ ."
"...メモリの割り当てを解除したい場合は 全体 アリーナ ."
著者は一章で100回以上この言葉を使う。 用語集には唯一の定義があります。
アリーナからの割り当て - 最初にアリーナを割り当て、その後、プログラムによってアリーナ内の割り当て/解除を管理する手法。 アリーナ内の割り当て/解放をプログラム自身で管理する手法です。 プロセス・メモリ・マネージャではなく)プログラム自身によってアリーナ内の割り当て/解放を管理する手法です。 複雑なデータ構造やオブジェクトの圧縮や直列化。 複雑なデータ構造やオブジェクトの圧縮や直列化、セーフティクリティカルなシステムやフォールトトレラントなシステムでのメモリ管理などに使われる。 システムのメモリ管理に使用されます。
どなたか アリーナ を定義できますか?
どのように解決するのですか?
アリーナとは、単に連続した大きなメモリの一部で、一度割り当てた後、そのメモリの一部を渡して手動でメモリを管理するために使用します。たとえば
char * arena = malloc(HUGE_NUMBER);
unsigned int current = 0;
void * my_malloc(size_t n) { current += n; return arena + current - n; }
ポイントは、メモリの割り当てがどのように行われるかを完全に制御できることです。あなたのコントロールの外にある唯一のものは、最初の割り当てのための単一のライブラリ呼び出しです。
1つの一般的なユースケースは、各アリーナが1つの単一で固定されたサイズのメモリブロックを割り当てるためにのみ使用される場合です。この場合、非常に効率的な再利用アルゴリズムを書くことができます。別のユースケースは、タスクごとに 1 つのアリーナを持ち、タスクが終了したときに、アリーナ全体を一度に解放でき、個々の割り当て解除の追跡について心配する必要がない場合です。
これらのテクニックのそれぞれは非常に専門的で、一般に、何をしているのか、なぜ通常のライブラリ割り当てが十分でないのかを正確に知っている場合にのみ、便利に使用できます。優れたメモリアロケータは、すでに多くの魔法を自分自身で行っており、自分自身でメモリを処理し始める前に、それが十分でないという適切な量の証拠が必要であることに注意してください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] 配列のベクトルを扱う正しい方法