summaryrefslogtreecommitdiffstats
path: root/runtime/parsed_options.h
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-04-23 12:42:27 -0700
committerMathieu Chartier <mathieuc@google.com>2014-04-29 12:58:08 -0700
commit6f365cc033654a5a3b45eaa1379d4b5f156b0cee (patch)
tree959754c43ebd2b01e366ac06f21d833340a7fee5 /runtime/parsed_options.h
parentcb905718826da268d8d8e09296806256f202c9f4 (diff)
downloadart-6f365cc033654a5a3b45eaa1379d4b5f156b0cee.zip
art-6f365cc033654a5a3b45eaa1379d4b5f156b0cee.tar.gz
art-6f365cc033654a5a3b45eaa1379d4b5f156b0cee.tar.bz2
Enable concurrent sweeping for non-concurrent GC.
Refactored the GarbageCollector to let all of the phases be run by the collector's RunPhases virtual method. This lets the GC decide which phases should be concurrent and reduces how much baked in GC logic resides in GarbageCollector. Enabled concurrent sweeping in the semi space and non concurrent mark sweep GCs. Changed the semi-space collector to have a swap semi spaces boolean which can be changed with a setter. Fixed tests to pass with GSS collector, there was an error related to the large object space limit. Before (EvaluateAndApplyChanges): GSS paused GC time 7.81s/7.81s, score: 3920 After (EvaluateAndApplyChanges): GSS paused GC time 6.94s/7.71s, score: 3900 Benchmark score doesn't go up since the GC happens in the allocating thread. There is a slight reduction in pause times experienced by other threads (0.8s total). Added options for pre sweeping GC heap verification and pre sweeping rosalloc verification. Bug: 14226004 Bug: 14250892 Bug: 14386356 Change-Id: Ib557d0590c1ed82a639d0f0281ba67cf8cae938c
Diffstat (limited to 'runtime/parsed_options.h')
-rw-r--r--runtime/parsed_options.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/runtime/parsed_options.h b/runtime/parsed_options.h
index 770e4ae..c02eb1d 100644
--- a/runtime/parsed_options.h
+++ b/runtime/parsed_options.h
@@ -41,8 +41,10 @@ class ParsedOptions {
bool is_explicit_gc_disabled_;
bool use_tlab_;
bool verify_pre_gc_heap_;
+ bool verify_pre_sweeping_heap_;
bool verify_post_gc_heap_;
bool verify_pre_gc_rosalloc_;
+ bool verify_pre_sweeping_rosalloc_;
bool verify_post_gc_rosalloc_;
unsigned int long_pause_log_threshold_;
unsigned int long_gc_log_threshold_;
@@ -100,6 +102,7 @@ class ParsedOptions {
void Abort();
bool Parse(const Runtime::Options& options, bool ignore_unrecognized);
+ bool ParseXGcOption(const std::string& option);
bool ParseStringAfterChar(const std::string& option, char after_char, std::string* parsed_value);
bool ParseInteger(const std::string& option, char after_char, int* parsed_value);
bool ParseUnsignedInteger(const std::string& option, char after_char, unsigned int* parsed_value);