英語版
このページの英語版を見る
std.experimental.allocator.showcase
与えられたコンポーネントを使った、典型的で有用なビルド済みアロケータのコレクション。
コンポーネントのコレクションである。ユーザーコードは通常このモジュールをインポートし、その機能を使用する。
または個々のヒープビルディングブロックをインポートして組み立てる。
- template
StackFront
(size_t stackSize, Allocator = GCAllocator) - stackSize バイトまでスタック割り当てを使用し、その後は にフォールバックするアロケータである。 Allocatorにフォールバックする。として定義されている:
alias StackFront(size_t stackSize, Allocator) = FallbackAllocator!( InSituRegion!(stackSize, Allocator.alignment, hasMember!(Allocator, "deallocate") ? Yes.defineDeallocate : No.defineDeallocate), Allocator);
stackSize 、常に妥協の産物である。サイズが小さすぎると、数回の割り当てで スタック・ストレージを使い果たしてしまう。 バックアップアロケータを超える利益はない。サイズが大きすぎると、スレッドが消費するスタックが増える。 によって消費されるスタックが増加し、スタックの冷たい部分を探索するため、結果的に悪くなる可能性がある。Examples:StackFront!4096 a; auto b = a.allocate(4000); writeln(b.length); // 4000 auto c = a.allocate(4000); writeln(c.length); // 4000 a.deallocate(b); a.deallocate(c);
- auto
mmapRegionList
(size_tbytesPerRegion
); - Regions のスケーラブルなAllocatorList を作成する。
bytesPerRegion
バイトを持つ。アロケーションは非常に高速である。このアロケータは deallocate を提供しないが、デストラクタですべての領域を解放する。このアロケータは 短時間のバッチアプリケーションで、メモリ不足にならないことを期待する場合に推奨される。Examples:auto alloc = mmapRegionList(1024 * 1024); const b = alloc.allocate(100); writeln(b.length); // 100
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku