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
 |