diff options
Diffstat (limited to 'compiler/optimizing/optimizing_compiler_stats.h')
-rw-r--r-- | compiler/optimizing/optimizing_compiler_stats.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/compiler/optimizing/optimizing_compiler_stats.h b/compiler/optimizing/optimizing_compiler_stats.h index 203b1ec7ec..f7f6a14e9d 100644 --- a/compiler/optimizing/optimizing_compiler_stats.h +++ b/compiler/optimizing/optimizing_compiler_stats.h @@ -17,6 +17,7 @@ #ifndef ART_COMPILER_OPTIMIZING_OPTIMIZING_COMPILER_STATS_H_ #define ART_COMPILER_OPTIMIZING_OPTIMIZING_COMPILER_STATS_H_ +#include <atomic> #include <iomanip> #include <string> #include <type_traits> @@ -74,7 +75,7 @@ class OptimizingCompilerStats { public: OptimizingCompilerStats() {} - void RecordStat(MethodCompilationStat stat, size_t count = 1) { + void RecordStat(MethodCompilationStat stat, uint32_t count = 1) { compile_stats_[stat] += count; } @@ -93,7 +94,7 @@ class OptimizingCompilerStats { << " methods: " << std::fixed << std::setprecision(2) << compiled_percent << "% (" << compile_stats_[kCompiled] << ") compiled."; - for (int i = 0; i < kLastStat; i++) { + for (size_t i = 0; i < kLastStat; i++) { if (compile_stats_[i] != 0) { LOG(INFO) << PrintMethodCompilationStat(static_cast<MethodCompilationStat>(i)) << ": " << compile_stats_[i]; @@ -102,6 +103,21 @@ class OptimizingCompilerStats { } } + void AddTo(OptimizingCompilerStats* other_stats) { + for (size_t i = 0; i != kLastStat; ++i) { + uint32_t count = compile_stats_[i]; + if (count != 0) { + other_stats->RecordStat(static_cast<MethodCompilationStat>(i), count); + } + } + } + + void Reset() { + for (size_t i = 0; i != kLastStat; ++i) { + compile_stats_[i] = 0u; + } + } + private: std::string PrintMethodCompilationStat(MethodCompilationStat stat) const { std::string name; @@ -156,7 +172,7 @@ class OptimizingCompilerStats { return "OptStat#" + name; } - AtomicInteger compile_stats_[kLastStat]; + std::atomic<uint32_t> compile_stats_[kLastStat]; DISALLOW_COPY_AND_ASSIGN(OptimizingCompilerStats); }; |