Documentation
¶
Overview ¶
Package memsize computes the size of your object graph.
So you made a spiffy algorithm and it works really well, but geez it's using way too much memory. Where did it all go? memsize to the rescue!
To get started, find a value that references all your objects and scan it. This traverses the graph, counting sizes per type.
sizes := memsize.Scan(myValue) fmt.Println(sizes.Total)
memsize can handle cycles just fine and tracks both private and public struct fields. Unfortunately function closures cannot be inspected in any way.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Sizes ¶
type Sizes struct {
Total uintptr
ByType map[reflect.Type]*TypeSize
// Internal stats (for debugging)
BitmapSize uintptr
BitmapUtilization float32
}
Sizes is the result of a scan.
Click to show internal directories.
Click to hide internal directories.