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
 |