template <>
class WireWeakOnewayClientImpl
Defined at line 476 of file fidling/gen/sdk/fidl/fuchsia.memory.inspection/fuchsia.memory.inspection/cpp/fidl/fuchsia.memory.inspection/cpp/wire_messaging.h
Public Methods
::fidl::OneWayStatus CollectJsonStats (::zx::socket && socket)
Writes to `socket` a JSON capture of the memory usage and the memory
bucket definition, as a well-formed UTF-8 string.
The socket is closed by the server after all the data is written into
it.
TODO(https://fxbug.dev/42073090): Document the schema of the JSON.
Sample output:
{"Capture":
{
"Time":28477260758625,
"Kernel":{
"total":1610612736,
"free":170565632,
"wired":67395584,
"total_heap":30904320,
"free_heap":1873728,
"vmo":1276194816,
"mmu":65294336,
"ipc":196608,
"other":61440
},
"Processes":[
["koid","name","vmos"],
[47325,"fonts.cm",[47353, ...]],
...
],
"VmoNames":["scudo:primary", ...],
"Vmos":[
["koid","name","parent_koid","committed_bytes","allocated_bytes"],
[47440,38,47437,4096,4096],
...
]
}
"Buckets":
[
{
"event_code": 29,
"name": "BlobfsInactive",
"process": "blobfs\\.cm",
"vmo": "inactive-blob-.*"
},
...
]
}
For size reasons:
- Processes and Vmos have an initial entry that contains the names of the the fields in
the rest of the entries.
- The names of the VMOs are an index into the VMONames array.
Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
::fidl::OneWayStatus CollectJsonStatsWithOptions (::fuchsia_memory_inspection::wire::CollectorCollectJsonStatsWithOptionsRequest CollectorCollectJsonStatsWithOptionsRequest)
Allocates 64 bytes of message buffer on the stack. No heap allocation necessary.