36 lines
864 B
C
36 lines
864 B
C
|
#ifndef HX_TELEMETRY_H
|
||
|
#define HX_TELEMETRY_H
|
||
|
|
||
|
#define HX_TELEMETRY_VERSION 1
|
||
|
|
||
|
#include <hxcpp.h>
|
||
|
#include <vector>
|
||
|
|
||
|
struct TelemetryFrame
|
||
|
{
|
||
|
// microseconds, always valid
|
||
|
int gctime;
|
||
|
int gcoverhead;
|
||
|
|
||
|
// Valid only if profiler is enabled
|
||
|
std::vector<int> *samples;
|
||
|
std::vector<const char*> *names;
|
||
|
|
||
|
// Valid only if allocations (and profiler) are enabled
|
||
|
std::vector<int> *allocation_data;
|
||
|
std::vector<int> *stacks;
|
||
|
};
|
||
|
|
||
|
// --- Telemetry -----------------------------------------------------------------
|
||
|
|
||
|
int __hxcpp_hxt_start_telemetry(bool profiler, bool allocations);
|
||
|
void __hxcpp_hxt_stash_telemetry();
|
||
|
TelemetryFrame* __hxcpp_hxt_dump_telemetry(int thread_num);
|
||
|
void __hxcpp_hxt_ignore_allocs(int delta);
|
||
|
|
||
|
// expose these from GCInternal
|
||
|
int __hxcpp_gc_reserved_bytes();
|
||
|
int __hxcpp_gc_used_bytes();
|
||
|
|
||
|
#endif
|