]> gitweb.factorcode.org Git - factor.git/blobdiff - vm/sampling_profiler.hpp
webapps.wiki: adding search bar
[factor.git] / vm / sampling_profiler.hpp
index 8711f28d633de3cebe07f3585d7e000924082ef2..161adc37e0668f222349de6af5b158b991502767 100644 (file)
@@ -1,6 +1,12 @@
 namespace factor {
 
-struct profiling_sample_count {
+struct profiling_sample {
+  // Active thread during sample
+  cell thread;
+  // The callstack at safepoint time. Indexes to the beginning and ending
+  // word entries in the vm sample_callstacks array.
+  cell callstack_begin, callstack_end;
+
   // Number of samples taken before the safepoint that recorded the sample
   fixnum sample_count;
   // Number of samples taken during GC
@@ -12,43 +18,25 @@ struct profiling_sample_count {
   // Number of samples taken during code execution in non-Factor threads
   fixnum foreign_thread_sample_count;
 
-  profiling_sample_count()
-      : sample_count(0),
-        gc_sample_count(0),
-        jit_sample_count(0),
-        foreign_sample_count(0),
-        foreign_thread_sample_count(0) {}
-
-  profiling_sample_count(fixnum sample_count, fixnum gc_sample_count,
-                         fixnum jit_sample_count, fixnum foreign_sample_count,
-                         fixnum foreign_thread_sample_count)
-      : sample_count(sample_count),
+  profiling_sample(fixnum sample_count, fixnum gc_sample_count,
+                   fixnum jit_sample_count, fixnum foreign_sample_count,
+                   fixnum foreign_thread_sample_count)
+      : thread(0),
+        callstack_begin(0),
+        callstack_end(0),
+        sample_count(sample_count),
         gc_sample_count(gc_sample_count),
         jit_sample_count(jit_sample_count),
         foreign_sample_count(foreign_sample_count),
         foreign_thread_sample_count(foreign_thread_sample_count) {}
 
+  profiling_sample record_counts() volatile;
+  void clear_counts() volatile;
   bool empty() const {
     return sample_count + gc_sample_count + jit_sample_count +
                foreign_sample_count + foreign_thread_sample_count ==
            0;
   }
-
-  profiling_sample_count record_counts() volatile;
-  void clear() volatile;
-};
-
-struct profiling_sample {
-  // Sample counts
-  profiling_sample_count counts;
-  // Active thread during sample
-  cell thread;
-  /* The callstack at safepoint time. Indexes to the beginning and ending
-     code_block entries in the vm sample_callstacks array. */
-  cell callstack_begin, callstack_end;
-
-  profiling_sample(factor_vm* vm, bool prolog_p,
-                   profiling_sample_count const& counts, cell thread);
 };
 
 }