Enum vmem::AllocPolicy
source · pub enum AllocPolicy {
InstantFit,
BestFit,
NextFit,
}
Expand description
An allocation policy.
Variants§
InstantFit
Allocate from the first block found that has a size greater than or equal to the requested size. This can cause fragmentation, but it is still generally the recommended policy, as it is O(1).
BestFit
Allocate the smallest block that can fit the requested size. This
framgents less than InstantFit
, but is O(n)
in the worst case.
NextFit
Allocate from a block after the last-allocated block. This guarantees
that allocations will not be reused, even after they are freed, until
the arena wraps around again. This is beneficial for process IDs, for
example, where re-allocating the same ID instantly could cause a
spurious kill left over from the first process. Like
InstantFit
, this policy does not take
wasted size into account. However, it is not quite O(1), because it
needs to traverse list to find the next block. It will likely be close
to O(1), but could be O(n) in the worst case.
Trait Implementations§
source§impl Clone for AllocPolicy
impl Clone for AllocPolicy
source§fn clone(&self) -> AllocPolicy
fn clone(&self) -> AllocPolicy
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl PartialEq for AllocPolicy
impl PartialEq for AllocPolicy
source§fn eq(&self, other: &AllocPolicy) -> bool
fn eq(&self, other: &AllocPolicy) -> bool
self
and other
values to be equal, and is used
by ==
.