Кажется, что формат не двоичный, как для профилировщика процессора, а текстовый:
Первая строка:
heap profile: 1: 2 [ 3: 4] @ heapprofile
Регулярное выражение (не полное)
(\d+): (\d+) \[(\d+): (\d+)\] @ ([^/]*)(/(\d+))?)?
где
- 1 & 2 - это «статистика использования»;первое число - это количество распределений, второе - количество байтов
- 3 и 4 - "общая распределенная статистика";первый и второй с одинаковым значением
- heapprofile имеет тип
Тогда сам профиль следует в виде множества строк:
1: 2 [ 3: 4] @ 0x00001 0x00002 0x00003
где "1: 2"и «3: 4» имеет то же значение, что и в первой строке;но только выловлен из данного места вызова;0x00001 0x00002 - это стек вызовов для места вызова.
Затем пустая строка и "MAPPED_LIBRARIES:".Из следующей строки следует нечто очень похожее на копию / proc / pid / maps.