Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: src/isolate.cc

Issue 143803007: Introduce --job-based-sweeping flag and use individual jobs for sweeping if set (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: updates Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/heap.cc ('k') | src/mark-compact.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1653 matching lines...) Expand 10 before | Expand all | Expand 10 after
1664 } 1664 }
1665 1665
1666 for (int i = 0; i < num_sweeper_threads_; i++) { 1666 for (int i = 0; i < num_sweeper_threads_; i++) {
1667 sweeper_thread_[i]->Stop(); 1667 sweeper_thread_[i]->Stop();
1668 delete sweeper_thread_[i]; 1668 delete sweeper_thread_[i];
1669 sweeper_thread_[i] = NULL; 1669 sweeper_thread_[i] = NULL;
1670 } 1670 }
1671 delete[] sweeper_thread_; 1671 delete[] sweeper_thread_;
1672 sweeper_thread_ = NULL; 1672 sweeper_thread_ = NULL;
1673 1673
1674 if (FLAG_job_based_sweeping &&
1675 heap_.mark_compact_collector()->IsConcurrentSweepingInProgress()) {
1676 heap_.mark_compact_collector()->WaitUntilSweepingCompleted();
1677 }
1674 1678
1675 if (FLAG_hydrogen_stats) GetHStatistics()->Print(); 1679 if (FLAG_hydrogen_stats) GetHStatistics()->Print();
1676 1680
1677 if (FLAG_print_deopt_stress) { 1681 if (FLAG_print_deopt_stress) {
1678 PrintF(stdout, "=== Stress deopt counter: %u\n", stress_deopt_count_); 1682 PrintF(stdout, "=== Stress deopt counter: %u\n", stress_deopt_count_);
1679 } 1683 }
1680 1684
1681 // We must stop the logger before we tear down other components. 1685 // We must stop the logger before we tear down other components.
1682 Sampler* sampler = logger_->sampler(); 1686 Sampler* sampler = logger_->sampler();
1683 if (sampler && sampler->IsActive()) sampler->Stop(); 1687 if (sampler && sampler->IsActive()) sampler->Stop();
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
2003 if (create_heap_objects) heap_.CreateStubsRequiringBuiltins(); 2007 if (create_heap_objects) heap_.CreateStubsRequiringBuiltins();
2004 2008
2005 // Set default value if not yet set. 2009 // Set default value if not yet set.
2006 // TODO(yangguo): move this to ResourceConstraints::ConfigureDefaults 2010 // TODO(yangguo): move this to ResourceConstraints::ConfigureDefaults
2007 // once ResourceConstraints becomes an argument to the Isolate constructor. 2011 // once ResourceConstraints becomes an argument to the Isolate constructor.
2008 if (max_available_threads_ < 1) { 2012 if (max_available_threads_ < 1) {
2009 // Choose the default between 1 and 4. 2013 // Choose the default between 1 and 4.
2010 max_available_threads_ = Max(Min(CPU::NumberOfProcessorsOnline(), 4), 1); 2014 max_available_threads_ = Max(Min(CPU::NumberOfProcessorsOnline(), 4), 1);
2011 } 2015 }
2012 2016
2013 num_sweeper_threads_ = SweeperThread::NumberOfThreads(max_available_threads_); 2017 if (!FLAG_job_based_sweeping) {
2018 num_sweeper_threads_ =
2019 SweeperThread::NumberOfThreads(max_available_threads_);
2020 }
2014 2021
2015 if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs) { 2022 if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs) {
2016 PrintF("Concurrent recompilation has been disabled for tracing.\n"); 2023 PrintF("Concurrent recompilation has been disabled for tracing.\n");
2017 } else if (OptimizingCompilerThread::Enabled(max_available_threads_)) { 2024 } else if (OptimizingCompilerThread::Enabled(max_available_threads_)) {
2018 optimizing_compiler_thread_ = new OptimizingCompilerThread(this); 2025 optimizing_compiler_thread_ = new OptimizingCompilerThread(this);
2019 optimizing_compiler_thread_->Start(); 2026 optimizing_compiler_thread_->Start();
2020 } 2027 }
2021 2028
2022 if (num_sweeper_threads_ > 0) { 2029 if (num_sweeper_threads_ > 0) {
2023 sweeper_thread_ = new SweeperThread*[num_sweeper_threads_]; 2030 sweeper_thread_ = new SweeperThread*[num_sweeper_threads_];
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
2308 2315
2309 #ifdef DEBUG 2316 #ifdef DEBUG
2310 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ 2317 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \
2311 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); 2318 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_);
2312 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) 2319 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET)
2313 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) 2320 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET)
2314 #undef ISOLATE_FIELD_OFFSET 2321 #undef ISOLATE_FIELD_OFFSET
2315 #endif 2322 #endif
2316 2323
2317 } } // namespace v8::internal 2324 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/heap.cc ('k') | src/mark-compact.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698