4 struct profiling_sample_count
6 // Number of samples taken before the safepoint that recorded the sample
8 // Number of samples taken during GC
9 fixnum gc_sample_count;
10 // Number of samples taken during unoptimized compiler
11 fixnum jit_sample_count;
12 // Number of samples taken during foreign code execution
13 fixnum foreign_sample_count;
14 // Number of samples taken during code execution in non-Factor threads
15 fixnum foreign_thread_sample_count;
17 profiling_sample_count() :
21 foreign_sample_count(0),
22 foreign_thread_sample_count(0) {}
24 profiling_sample_count(fixnum sample_count,
25 fixnum gc_sample_count,
26 fixnum jit_sample_count,
27 fixnum foreign_sample_count,
28 fixnum foreign_thread_sample_count) :
29 sample_count(sample_count),
30 gc_sample_count(gc_sample_count),
31 jit_sample_count(jit_sample_count),
32 foreign_sample_count(foreign_sample_count),
33 foreign_thread_sample_count(foreign_thread_sample_count) {}
40 + foreign_sample_count
41 + foreign_thread_sample_count == 0;
44 profiling_sample_count record_counts() volatile;
45 void clear() volatile;
48 struct profiling_sample
51 profiling_sample_count counts;
52 // Active thread during sample
54 /* The callstack at safepoint time. Indexes to the beginning and ending
55 code_block entries in the vm sample_callstacks array. */
56 cell callstack_begin, callstack_end;
58 profiling_sample(factor_vm *vm,
59 profiling_sample_count const &counts,