Revision: 15276
Author: [email protected]
Date: Mon Jun 24 01:40:38 2013
Log: CPUProfiler: remove copy&paste from CodeCreateEvent.
This is the next patch on the way of simplifying profiler API.
It is extracting the common parts of the serialization process.
TEST=current test set
[email protected]
Review URL: https://codereview.chromium.org/16917008
http://code.google.com/p/v8/source/detail?r=15276
Modified:
/branches/bleeding_edge/src/log.cc
/branches/bleeding_edge/src/log.h
=======================================
--- /branches/bleeding_edge/src/log.cc Thu Jun 13 04:09:19 2013
+++ /branches/bleeding_edge/src/log.cc Mon Jun 24 01:40:38 2013
@@ -903,18 +903,39 @@
}
-void Logger::CodeCreateEvent(LogEventsAndTags tag,
- Code* code,
- const char* comment) {
- if (!is_logging_code_events()) return;
- if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ !=
NULL) {
+void Logger::AppendName(Name* name) {
+ if (name->IsString()) {
+ name_buffer_->AppendString(String::cast(name));
+ } else {
+ Symbol* symbol = Symbol::cast(name);
+ name_buffer_->AppendBytes("symbol(");
+ if (!symbol->name()->IsUndefined()) {
+ name_buffer_->AppendBytes("\"");
+ name_buffer_->AppendString(String::cast(symbol->name()));
+ name_buffer_->AppendBytes("\" ");
+ }
+ name_buffer_->AppendBytes("hash ");
+ name_buffer_->AppendHex(symbol->Hash());
+ name_buffer_->AppendByte(')');
+ }
+}
+
+
+void Logger::InitNameBuffer(LogEventsAndTags tag) {
name_buffer_->Reset();
name_buffer_->AppendBytes(kLogEventsNames[tag]);
name_buffer_->AppendByte(':');
- name_buffer_->AppendBytes(comment);
- }
+}
+
+
+void Logger::LogRecordedBuffer(Code* code, SharedFunctionInfo* shared) {
if (code_event_handler_ != NULL) {
- IssueCodeAddedEvent(code, NULL, name_buffer_->get(),
name_buffer_->size());
+ Script* script = shared && shared->script()->IsScript() ?
+ Script::cast(shared->script()) : NULL;
+ IssueCodeAddedEvent(code,
+ script,
+ name_buffer_->get(),
+ name_buffer_->size());
}
if (!log_->IsEnabled()) return;
if (FLAG_ll_prof) {
@@ -923,7 +944,20 @@
if (Serializer::enabled()) {
RegisterSnapshotCodeName(code, name_buffer_->get(),
name_buffer_->size());
}
- if (!FLAG_log_code) return;
+}
+
+
+void Logger::CodeCreateEvent(LogEventsAndTags tag,
+ Code* code,
+ const char* comment) {
+ if (!is_logging_code_events()) return;
+ if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ !=
NULL) {
+ InitNameBuffer(tag);
+ name_buffer_->AppendBytes(comment);
+ LogRecordedBuffer(code, NULL);
+ }
+
+ if (!FLAG_log_code || !log_->IsEnabled()) return;
LogMessageBuilder msg(this);
msg.Append("%s,%s,%d,",
kLogEventsNames[CODE_CREATION_EVENT],
@@ -948,35 +982,12 @@
Name* name) {
if (!is_logging_code_events()) return;
if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ !=
NULL) {
- name_buffer_->Reset();
- name_buffer_->AppendBytes(kLogEventsNames[tag]);
- name_buffer_->AppendByte(':');
- if (name->IsString()) {
- name_buffer_->AppendString(String::cast(name));
- } else {
- Symbol* symbol = Symbol::cast(name);
- name_buffer_->AppendBytes("symbol(");
- if (!symbol->name()->IsUndefined()) {
- name_buffer_->AppendBytes("\"");
- name_buffer_->AppendString(String::cast(symbol->name()));
- name_buffer_->AppendBytes("\" ");
- }
- name_buffer_->AppendBytes("hash ");
- name_buffer_->AppendHex(symbol->Hash());
- name_buffer_->AppendByte(')');
- }
+ InitNameBuffer(tag);
+ AppendName(name);
+ LogRecordedBuffer(code, NULL);
}
- if (code_event_handler_ != NULL) {
- IssueCodeAddedEvent(code, NULL, name_buffer_->get(),
name_buffer_->size());
- }
- if (!log_->IsEnabled()) return;
- if (FLAG_ll_prof) {
- LowLevelCodeCreateEvent(code, name_buffer_->get(),
name_buffer_->size());
- }
- if (Serializer::enabled()) {
- RegisterSnapshotCodeName(code, name_buffer_->get(),
name_buffer_->size());
- }
- if (!FLAG_log_code) return;
+
+ if (!FLAG_log_code || !log_->IsEnabled()) return;
LogMessageBuilder msg(this);
msg.Append("%s,%s,%d,",
kLogEventsNames[CODE_CREATION_EVENT],
@@ -1020,41 +1031,13 @@
Name* name) {
if (!is_logging_code_events()) return;
if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ !=
NULL) {
- name_buffer_->Reset();
- name_buffer_->AppendBytes(kLogEventsNames[tag]);
- name_buffer_->AppendByte(':');
+ InitNameBuffer(tag);
name_buffer_->AppendBytes(ComputeMarker(code));
- if (name->IsString()) {
- name_buffer_->AppendString(String::cast(name));
- } else {
- Symbol* symbol = Symbol::cast(name);
- name_buffer_->AppendBytes("symbol(");
- if (!symbol->name()->IsUndefined()) {
- name_buffer_->AppendBytes("\"");
- name_buffer_->AppendString(String::cast(symbol->name()));
- name_buffer_->AppendBytes("\" ");
- }
- name_buffer_->AppendBytes("hash ");
- name_buffer_->AppendHex(symbol->Hash());
- name_buffer_->AppendByte(')');
- }
- }
- if (code_event_handler_ != NULL) {
- Script* script =
- shared->script()->IsScript() ? Script::cast(shared->script()) :
NULL;
- IssueCodeAddedEvent(code,
- script,
- name_buffer_->get(),
- name_buffer_->size());
- }
- if (!log_->IsEnabled()) return;
- if (FLAG_ll_prof) {
- LowLevelCodeCreateEvent(code, name_buffer_->get(),
name_buffer_->size());
- }
- if (Serializer::enabled()) {
- RegisterSnapshotCodeName(code, name_buffer_->get(),
name_buffer_->size());
+ AppendName(name);
+ LogRecordedBuffer(code, shared);
}
- if (!FLAG_log_code) return;
+
+ if (!FLAG_log_code || !log_->IsEnabled()) return;
if (code == Isolate::Current()->builtins()->builtin(
Builtins::kLazyCompile))
return;
@@ -1098,9 +1081,7 @@
Name* source, int line) {
if (!is_logging_code_events()) return;
if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ !=
NULL) {
- name_buffer_->Reset();
- name_buffer_->AppendBytes(kLogEventsNames[tag]);
- name_buffer_->AppendByte(':');
+ InitNameBuffer(tag);
name_buffer_->AppendBytes(ComputeMarker(code));
name_buffer_->AppendString(shared->DebugName());
name_buffer_->AppendByte(' ');
@@ -1113,23 +1094,10 @@
}
name_buffer_->AppendByte(':');
name_buffer_->AppendInt(line);
- }
- if (code_event_handler_ != NULL) {
- Script* script =
- shared->script()->IsScript() ? Script::cast(shared->script()) :
NULL;
- IssueCodeAddedEvent(code,
- script,
- name_buffer_->get(),
- name_buffer_->size());
- }
- if (!log_->IsEnabled()) return;
- if (FLAG_ll_prof) {
- LowLevelCodeCreateEvent(code, name_buffer_->get(),
name_buffer_->size());
- }
- if (Serializer::enabled()) {
- RegisterSnapshotCodeName(code, name_buffer_->get(),
name_buffer_->size());
+ LogRecordedBuffer(code, shared);
}
- if (!FLAG_log_code) return;
+
+ if (!FLAG_log_code || !log_->IsEnabled()) return;
LogMessageBuilder msg(this);
SmartArrayPointer<char> name =
shared->DebugName()->ToCString(DISALLOW_NULLS,
ROBUST_STRING_TRAVERSAL);
@@ -1164,22 +1132,12 @@
void Logger::CodeCreateEvent(LogEventsAndTags tag, Code* code, int
args_count) {
if (!is_logging_code_events()) return;
if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ !=
NULL) {
- name_buffer_->Reset();
- name_buffer_->AppendBytes(kLogEventsNames[tag]);
- name_buffer_->AppendByte(':');
+ InitNameBuffer(tag);
name_buffer_->AppendInt(args_count);
- }
- if (code_event_handler_ != NULL) {
- IssueCodeAddedEvent(code, NULL, name_buffer_->get(),
name_buffer_->size());
- }
- if (!log_->IsEnabled()) return;
- if (FLAG_ll_prof) {
- LowLevelCodeCreateEvent(code, name_buffer_->get(),
name_buffer_->size());
- }
- if (Serializer::enabled()) {
- RegisterSnapshotCodeName(code, name_buffer_->get(),
name_buffer_->size());
+ LogRecordedBuffer(code, NULL);
}
- if (!FLAG_log_code) return;
+
+ if (!FLAG_log_code || !log_->IsEnabled()) return;
LogMessageBuilder msg(this);
msg.Append("%s,%s,%d,",
kLogEventsNames[CODE_CREATION_EVENT],
@@ -1202,22 +1160,12 @@
void Logger::RegExpCodeCreateEvent(Code* code, String* source) {
if (!is_logging_code_events()) return;
if (FLAG_ll_prof || Serializer::enabled() || code_event_handler_ !=
NULL) {
- name_buffer_->Reset();
- name_buffer_->AppendBytes(kLogEventsNames[REG_EXP_TAG]);
- name_buffer_->AppendByte(':');
+ InitNameBuffer(REG_EXP_TAG);
name_buffer_->AppendString(source);
- }
- if (code_event_handler_ != NULL) {
- IssueCodeAddedEvent(code, NULL, name_buffer_->get(),
name_buffer_->size());
- }
- if (!log_->IsEnabled()) return;
- if (FLAG_ll_prof) {
- LowLevelCodeCreateEvent(code, name_buffer_->get(),
name_buffer_->size());
- }
- if (Serializer::enabled()) {
- RegisterSnapshotCodeName(code, name_buffer_->get(),
name_buffer_->size());
+ LogRecordedBuffer(code, NULL);
}
- if (!FLAG_log_code) return;
+
+ if (!FLAG_log_code || !log_->IsEnabled()) return;
LogMessageBuilder msg(this);
msg.Append("%s,%s,-2,",
kLogEventsNames[CODE_CREATION_EVENT],
=======================================
--- /branches/bleeding_edge/src/log.h Tue May 14 15:51:33 2013
+++ /branches/bleeding_edge/src/log.h Mon Jun 24 01:40:38 2013
@@ -413,6 +413,15 @@
// Used for logging stubs found in the snapshot.
void LogCodeObject(Object* code_object);
+ // Helper method. It resets name_buffer_ and add tag name into it.
+ void InitNameBuffer(LogEventsAndTags tag);
+
+ // Helper method. It push recorded buffer into different handlers.
+ void LogRecordedBuffer(Code*, SharedFunctionInfo*);
+
+ // Helper method. It dumps name into name_buffer_.
+ void AppendName(Name* name);
+
// Emits general information about generated code.
void LogCodeInfo();
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.