1. A system comprising: at least one processor of a computing device; a memory of the computing device; and at least one module loaded into the memory causing the at least one processor to: in response to receiving a request for a heap snapshot, provide memory allocation statistics of a native language program by: receiving information mapping a relative virtual address of an instruction in a binary of the native language program to a user type, the instruction when executed requesting a memory allocation; mapping a virtual memory address of the instruction executing in a process to an address of an instance of the memory allocation requested by the instruction; matching the virtual memory address of the instruction to a corresponding relative virtual address of the instruction; assigning the user type mapped to the corresponding relative virtual address to the virtual memory address of the instruction; and aggregating user type instance counts and sizes,