Clean up sampling tracing.
- Moved maps to fields within thread.
- Created temp trace field to lessen amount of traces allocated and freed.
Change-Id: I23fe25a85ad2894cc6917f87d4046cdececf0739
diff --git a/runtime/thread.h b/runtime/thread.h
index f16695d..40e3f5f 100644
--- a/runtime/thread.h
+++ b/runtime/thread.h
@@ -552,6 +552,22 @@
return instrumentation_stack_;
}
+ std::vector<mirror::ArtMethod*>* GetStackTraceSample() const {
+ return stack_trace_sample_;
+ }
+
+ void SetStackTraceSample(std::vector<mirror::ArtMethod*>* sample) {
+ stack_trace_sample_ = sample;
+ }
+
+ uint64_t GetTraceClockBase() const {
+ return trace_clock_base_;
+ }
+
+ void SetTraceClockBase(uint64_t clock_base) {
+ trace_clock_base_ = clock_base;
+ }
+
BaseMutex* GetHeldMutex(LockLevel level) const {
return held_mutexes_[level];
}
@@ -698,6 +714,12 @@
// Size of the stack
size_t stack_size_;
+ // Pointer to previous stack trace captured by sampling profiler.
+ std::vector<mirror::ArtMethod*>* stack_trace_sample_;
+
+ // The clock base used for tracing.
+ uint64_t trace_clock_base_;
+
// Thin lock thread id. This is a small integer used by the thin lock implementation.
// This is not to be confused with the native thread's tid, nor is it the value returned
// by java.lang.Thread.getId --- this is a distinct value, used only for locking. One