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

Side by Side Diff: src/parsing/parser.cc

Issue 2187693002: [Tracing] Embed V8 runtime call stats into tracing. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix memory leak Created 4 years, 4 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/objects.cc ('k') | src/tracing/trace-event.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/parsing/parser.h" 5 #include "src/parsing/parser.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/ast/ast.h" 10 #include "src/ast/ast.h"
(...skipping 901 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 FunctionLiteral* Parser::ParseProgram(Isolate* isolate, ParseInfo* info) { 912 FunctionLiteral* Parser::ParseProgram(Isolate* isolate, ParseInfo* info) {
913 // TODO(bmeurer): We temporarily need to pass allow_nesting = true here, 913 // TODO(bmeurer): We temporarily need to pass allow_nesting = true here,
914 // see comment for HistogramTimerScope class. 914 // see comment for HistogramTimerScope class.
915 915
916 // It's OK to use the Isolate & counters here, since this function is only 916 // It's OK to use the Isolate & counters here, since this function is only
917 // called in the main thread. 917 // called in the main thread.
918 DCHECK(parsing_on_main_thread_); 918 DCHECK(parsing_on_main_thread_);
919 919
920 HistogramTimerScope timer_scope(isolate->counters()->parse(), true); 920 HistogramTimerScope timer_scope(isolate->counters()->parse(), true);
921 RuntimeCallTimerScope runtime_timer(isolate, &RuntimeCallStats::Parse); 921 RuntimeCallTimerScope runtime_timer(isolate, &RuntimeCallStats::Parse);
922 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.Parse"); 922 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
923 isolate, &tracing::TraceEventStatsTable::Parse);
923 Handle<String> source(String::cast(info->script()->source())); 924 Handle<String> source(String::cast(info->script()->source()));
924 isolate->counters()->total_parse_size()->Increment(source->length()); 925 isolate->counters()->total_parse_size()->Increment(source->length());
925 base::ElapsedTimer timer; 926 base::ElapsedTimer timer;
926 if (FLAG_trace_parse) { 927 if (FLAG_trace_parse) {
927 timer.Start(); 928 timer.Start();
928 } 929 }
929 fni_ = new (zone()) FuncNameInferrer(ast_value_factory(), zone()); 930 fni_ = new (zone()) FuncNameInferrer(ast_value_factory(), zone());
930 931
931 // Initialize parser state. 932 // Initialize parser state.
932 CompleteParserRecorder recorder; 933 CompleteParserRecorder recorder;
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 return result; 1077 return result;
1077 } 1078 }
1078 1079
1079 1080
1080 FunctionLiteral* Parser::ParseLazy(Isolate* isolate, ParseInfo* info) { 1081 FunctionLiteral* Parser::ParseLazy(Isolate* isolate, ParseInfo* info) {
1081 // It's OK to use the Isolate & counters here, since this function is only 1082 // It's OK to use the Isolate & counters here, since this function is only
1082 // called in the main thread. 1083 // called in the main thread.
1083 DCHECK(parsing_on_main_thread_); 1084 DCHECK(parsing_on_main_thread_);
1084 RuntimeCallTimerScope runtime_timer(isolate, &RuntimeCallStats::ParseLazy); 1085 RuntimeCallTimerScope runtime_timer(isolate, &RuntimeCallStats::ParseLazy);
1085 HistogramTimerScope timer_scope(isolate->counters()->parse_lazy()); 1086 HistogramTimerScope timer_scope(isolate->counters()->parse_lazy());
1086 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.compile"), "V8.ParseLazy"); 1087 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
1088 isolate, &tracing::TraceEventStatsTable::ParseLazy);
1087 Handle<String> source(String::cast(info->script()->source())); 1089 Handle<String> source(String::cast(info->script()->source()));
1088 isolate->counters()->total_parse_size()->Increment(source->length()); 1090 isolate->counters()->total_parse_size()->Increment(source->length());
1089 base::ElapsedTimer timer; 1091 base::ElapsedTimer timer;
1090 if (FLAG_trace_parse) { 1092 if (FLAG_trace_parse) {
1091 timer.Start(); 1093 timer.Start();
1092 } 1094 }
1093 Handle<SharedFunctionInfo> shared_info = info->shared_info(); 1095 Handle<SharedFunctionInfo> shared_info = info->shared_info();
1094 DeserializeScopeChain(info, info->context(), 1096 DeserializeScopeChain(info, info->context(),
1095 Scope::DeserializationMode::kKeepScopeInfo); 1097 Scope::DeserializationMode::kKeepScopeInfo);
1096 1098
(...skipping 6005 matching lines...) Expand 10 before | Expand all | Expand 10 after
7102 node->Print(Isolate::Current()); 7104 node->Print(Isolate::Current());
7103 } 7105 }
7104 #endif // DEBUG 7106 #endif // DEBUG
7105 7107
7106 #undef CHECK_OK 7108 #undef CHECK_OK
7107 #undef CHECK_OK_VOID 7109 #undef CHECK_OK_VOID
7108 #undef CHECK_FAILED 7110 #undef CHECK_FAILED
7109 7111
7110 } // namespace internal 7112 } // namespace internal
7111 } // namespace v8 7113 } // namespace v8
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | src/tracing/trace-event.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698