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

Side by Side Diff: src/isolate.cc

Issue 2344143003: Moved zones and zone related stuff in its own directory. (Closed)
Patch Set: Merge branch 'master' into zonefolder Created 4 years, 3 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
« no previous file with comments | « src/isolate.h ('k') | src/machine-type.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 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/isolate.h" 5 #include "src/isolate.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 8
9 #include <fstream> // NOLINT(readability/streams) 9 #include <fstream> // NOLINT(readability/streams)
10 #include <sstream> 10 #include <sstream>
11 11
12 #include "src/ast/context-slot-cache.h" 12 #include "src/ast/context-slot-cache.h"
13 #include "src/base/accounting-allocator.h"
14 #include "src/base/hashmap.h" 13 #include "src/base/hashmap.h"
15 #include "src/base/platform/platform.h" 14 #include "src/base/platform/platform.h"
16 #include "src/base/sys-info.h" 15 #include "src/base/sys-info.h"
17 #include "src/base/utils/random-number-generator.h" 16 #include "src/base/utils/random-number-generator.h"
18 #include "src/basic-block-profiler.h" 17 #include "src/basic-block-profiler.h"
19 #include "src/bootstrapper.h" 18 #include "src/bootstrapper.h"
20 #include "src/cancelable-task.h" 19 #include "src/cancelable-task.h"
21 #include "src/codegen.h" 20 #include "src/codegen.h"
22 #include "src/compilation-cache.h" 21 #include "src/compilation-cache.h"
23 #include "src/compilation-statistics.h" 22 #include "src/compilation-statistics.h"
(...skipping 12 matching lines...) Expand all
36 #include "src/profiler/cpu-profiler.h" 35 #include "src/profiler/cpu-profiler.h"
37 #include "src/prototype.h" 36 #include "src/prototype.h"
38 #include "src/regexp/regexp-stack.h" 37 #include "src/regexp/regexp-stack.h"
39 #include "src/runtime-profiler.h" 38 #include "src/runtime-profiler.h"
40 #include "src/simulator.h" 39 #include "src/simulator.h"
41 #include "src/snapshot/deserializer.h" 40 #include "src/snapshot/deserializer.h"
42 #include "src/v8.h" 41 #include "src/v8.h"
43 #include "src/version.h" 42 #include "src/version.h"
44 #include "src/vm-state-inl.h" 43 #include "src/vm-state-inl.h"
45 #include "src/wasm/wasm-module.h" 44 #include "src/wasm/wasm-module.h"
45 #include "src/zone/accounting-allocator.h"
46 46
47 namespace v8 { 47 namespace v8 {
48 namespace internal { 48 namespace internal {
49 49
50 base::Atomic32 ThreadId::highest_thread_id_ = 0; 50 base::Atomic32 ThreadId::highest_thread_id_ = 0;
51 51
52 int ThreadId::AllocateThreadId() { 52 int ThreadId::AllocateThreadId() {
53 int new_id = base::NoBarrier_AtomicIncrement(&highest_thread_id_, 1); 53 int new_id = base::NoBarrier_AtomicIncrement(&highest_thread_id_, 1);
54 return new_id; 54 return new_id;
55 } 55 }
(...skipping 1835 matching lines...) Expand 10 before | Expand all | Expand 10 after
1891 do { \ 1891 do { \
1892 if (FLAG_trace_isolates) { \ 1892 if (FLAG_trace_isolates) { \
1893 PrintF("Isolate %p (id %d)" #tag "\n", \ 1893 PrintF("Isolate %p (id %d)" #tag "\n", \
1894 reinterpret_cast<void*>(this), id()); \ 1894 reinterpret_cast<void*>(this), id()); \
1895 } \ 1895 } \
1896 } while (false) 1896 } while (false)
1897 #else 1897 #else
1898 #define TRACE_ISOLATE(tag) 1898 #define TRACE_ISOLATE(tag)
1899 #endif 1899 #endif
1900 1900
1901 class VerboseAccountingAllocator : public base::AccountingAllocator { 1901 class VerboseAccountingAllocator : public AccountingAllocator {
1902 public: 1902 public:
1903 VerboseAccountingAllocator(Heap* heap, size_t sample_bytes) 1903 VerboseAccountingAllocator(Heap* heap, size_t sample_bytes)
1904 : heap_(heap), last_memory_usage_(0), sample_bytes_(sample_bytes) {} 1904 : heap_(heap), last_memory_usage_(0), sample_bytes_(sample_bytes) {}
1905 1905
1906 void* Allocate(size_t size) override { 1906 v8::internal::Segment* AllocateSegment(size_t size) override {
1907 void* memory = base::AccountingAllocator::Allocate(size); 1907 v8::internal::Segment* memory = AccountingAllocator::AllocateSegment(size);
1908 if (memory) { 1908 if (memory) {
1909 size_t current = GetCurrentMemoryUsage(); 1909 size_t current = GetCurrentMemoryUsage();
1910 if (last_memory_usage_.Value() + sample_bytes_ < current) { 1910 if (last_memory_usage_.Value() + sample_bytes_ < current) {
1911 PrintJSON(current); 1911 PrintJSON(current);
1912 last_memory_usage_.SetValue(current); 1912 last_memory_usage_.SetValue(current);
1913 } 1913 }
1914 } 1914 }
1915 return memory; 1915 return memory;
1916 } 1916 }
1917 1917
1918 void Free(void* memory, size_t bytes) override { 1918 void FreeSegment(v8::internal::Segment* memory) override {
1919 base::AccountingAllocator::Free(memory, bytes); 1919 AccountingAllocator::FreeSegment(memory);
1920 size_t current = GetCurrentMemoryUsage(); 1920 size_t current = GetCurrentMemoryUsage();
1921 if (current + sample_bytes_ < last_memory_usage_.Value()) { 1921 if (current + sample_bytes_ < last_memory_usage_.Value()) {
1922 PrintJSON(current); 1922 PrintJSON(current);
1923 last_memory_usage_.SetValue(current); 1923 last_memory_usage_.SetValue(current);
1924 } 1924 }
1925 } 1925 }
1926 1926
1927 private: 1927 private:
1928 void PrintJSON(size_t sample) { 1928 void PrintJSON(size_t sample) {
1929 // Note: Neither isolate, nor heap is locked, so be careful with accesses 1929 // Note: Neither isolate, nor heap is locked, so be careful with accesses
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1964 capture_stack_trace_for_uncaught_exceptions_(false), 1964 capture_stack_trace_for_uncaught_exceptions_(false),
1965 stack_trace_for_uncaught_exceptions_frame_limit_(0), 1965 stack_trace_for_uncaught_exceptions_frame_limit_(0),
1966 stack_trace_for_uncaught_exceptions_options_(StackTrace::kOverview), 1966 stack_trace_for_uncaught_exceptions_options_(StackTrace::kOverview),
1967 keyed_lookup_cache_(NULL), 1967 keyed_lookup_cache_(NULL),
1968 context_slot_cache_(NULL), 1968 context_slot_cache_(NULL),
1969 descriptor_lookup_cache_(NULL), 1969 descriptor_lookup_cache_(NULL),
1970 handle_scope_implementer_(NULL), 1970 handle_scope_implementer_(NULL),
1971 unicode_cache_(NULL), 1971 unicode_cache_(NULL),
1972 allocator_(FLAG_trace_gc_object_stats 1972 allocator_(FLAG_trace_gc_object_stats
1973 ? new VerboseAccountingAllocator(&heap_, 256 * KB) 1973 ? new VerboseAccountingAllocator(&heap_, 256 * KB)
1974 : new base::AccountingAllocator()), 1974 : new AccountingAllocator()),
1975 runtime_zone_(new Zone(allocator_)), 1975 runtime_zone_(new Zone(allocator_)),
1976 inner_pointer_to_code_cache_(NULL), 1976 inner_pointer_to_code_cache_(NULL),
1977 global_handles_(NULL), 1977 global_handles_(NULL),
1978 eternal_handles_(NULL), 1978 eternal_handles_(NULL),
1979 thread_manager_(NULL), 1979 thread_manager_(NULL),
1980 has_installed_extensions_(false), 1980 has_installed_extensions_(false),
1981 regexp_stack_(NULL), 1981 regexp_stack_(NULL),
1982 date_cache_(NULL), 1982 date_cache_(NULL),
1983 call_descriptor_data_(NULL), 1983 call_descriptor_data_(NULL),
1984 // TODO(bmeurer) Initialized lazily because it depends on flags; can 1984 // TODO(bmeurer) Initialized lazily because it depends on flags; can
(...skipping 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after
3217 // Then check whether this scope intercepts. 3217 // Then check whether this scope intercepts.
3218 if ((flag & intercept_mask_)) { 3218 if ((flag & intercept_mask_)) {
3219 intercepted_flags_ |= flag; 3219 intercepted_flags_ |= flag;
3220 return true; 3220 return true;
3221 } 3221 }
3222 return false; 3222 return false;
3223 } 3223 }
3224 3224
3225 } // namespace internal 3225 } // namespace internal
3226 } // namespace v8 3226 } // namespace v8
OLDNEW
« no previous file with comments | « src/isolate.h ('k') | src/machine-type.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698