View source code
Display the source code in std/experimental/allocator/building_blocks/stats_collector.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Struct std.experimental.allocator.building_blocks.stats_collector.StatsCollector
Allocator that collects extra data about allocations. Since each piece of
information adds size and time overhead, statistics can be individually enabled
or disabled through compile-time flags
.
struct StatsCollector(Allocator, ulong flags = Options .all, ulong perCallFlags = 0)
;
All stats of the form numXxx
record counts of events occurring, such as
calls to functions and specific results. The stats of the form bytesXxx
collect cumulative sizes.
In addition, the data callerSize
, callerModule
, callerFile
, callerLine
, and callerTime
is associated with each specific allocation.
This data prefixes each allocation.
Fields
Name | Type | Description |
---|---|---|
parent
|
Allocator | The parent allocator is publicly accessible either as a direct member if it
holds state, or as an alias to Allocator otherwise. One may use
it for making calls that won't count toward statistics collection.
|
Properties
Name | Type | Description |
---|---|---|
bytesAllocated [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
bytesContracted [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
bytesExpanded [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
bytesHighTide [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
bytesMoved [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
bytesNotMoved [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
bytesSlack [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
bytesUsed [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numAlignedAllocate [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numAlignedAllocateOk [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numAllocate [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numAllocateOK [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numDeallocate [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numDeallocateAll [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numExpand [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numExpandOK [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numOwns [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numReallocate [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numReallocateInPlace [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
numReallocateOK [get]
|
ulong | Read-only properties enabled by the homonym flags chosen by the
user.
|
Methods
Inner structs
Name | Description |
---|---|
PerCallStatistics
|
Defined if perCallFlags is nonzero.
|
Aliases
Name | Description |
---|---|
alignment
|
Alignment offered is equal to Allocator .
|
Example
import std .experimental .allocator .building_blocks .free_list : FreeList;
import std .experimental .allocator .gc_allocator : GCAllocator;
alias Allocator = StatsCollector!(GCAllocator, Options .all, Options .all);
Allocator alloc;
auto b = alloc .allocate(10);
alloc .reallocate(b, 20);
alloc .deallocate(b);
import std .file : deleteme, remove;
import std .range : walkLength;
import std .stdio : File;
auto f = deleteme ~ "-dlang.std.experimental.allocator.stats_collector.txt";
scope(exit) remove(f);
Allocator .reportPerCallStatistics(File(f, "w"));
alloc .reportStatistics(File(f, "a"));
writeln(File(f) .byLine .walkLength); // 24
Authors
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.