| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 <stdarg.h> | 5 #include <stdarg.h> |
| 6 | 6 |
| 7 #include "src/v8.h" | 7 #include "src/v8.h" |
| 8 | 8 |
| 9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
| 10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
| (...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 860 engaged_(false), | 860 engaged_(false), |
| 861 running_(false), | 861 running_(false), |
| 862 paused_(false) { | 862 paused_(false) { |
| 863 } | 863 } |
| 864 | 864 |
| 865 | 865 |
| 866 void Profiler::Engage() { | 866 void Profiler::Engage() { |
| 867 if (engaged_) return; | 867 if (engaged_) return; |
| 868 engaged_ = true; | 868 engaged_ = true; |
| 869 | 869 |
| 870 OS::LogSharedLibraryAddresses(isolate_); | 870 std::vector<OS::SharedLibraryAddress> addresses = |
| 871 OS::GetSharedLibraryAddresses(); |
| 872 for (size_t i = 0; i < addresses.size(); ++i) { |
| 873 LOG(isolate_, SharedLibraryEvent( |
| 874 addresses[i].library_path, addresses[i].start, addresses[i].end)); |
| 875 } |
| 871 | 876 |
| 872 // Start thread processing the profiler buffer. | 877 // Start thread processing the profiler buffer. |
| 873 running_ = true; | 878 running_ = true; |
| 874 Start(); | 879 Start(); |
| 875 | 880 |
| 876 // Register to get ticks. | 881 // Register to get ticks. |
| 877 Logger* logger = isolate_->logger(); | 882 Logger* logger = isolate_->logger(); |
| 878 logger->ticker_->SetProfiler(this); | 883 logger->ticker_->SetProfiler(this); |
| 879 | 884 |
| 880 logger->ProfilerBeginEvent(); | 885 logger->ProfilerBeginEvent(); |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1041 Symbol::cast(key)->Hash()); | 1046 Symbol::cast(key)->Hash()); |
| 1042 } | 1047 } |
| 1043 } else if (key->IsUndefined()) { | 1048 } else if (key->IsUndefined()) { |
| 1044 ApiEvent("api,check-security,undefined\n"); | 1049 ApiEvent("api,check-security,undefined\n"); |
| 1045 } else { | 1050 } else { |
| 1046 ApiEvent("api,check-security,['no-name']\n"); | 1051 ApiEvent("api,check-security,['no-name']\n"); |
| 1047 } | 1052 } |
| 1048 } | 1053 } |
| 1049 | 1054 |
| 1050 | 1055 |
| 1051 void Logger::SharedLibraryEvent(const char* library_path, | 1056 void Logger::SharedLibraryEvent(const std::string& library_path, |
| 1052 uintptr_t start, | 1057 uintptr_t start, |
| 1053 uintptr_t end) { | 1058 uintptr_t end) { |
| 1054 if (!log_->IsEnabled() || !FLAG_prof) return; | 1059 if (!log_->IsEnabled() || !FLAG_prof) return; |
| 1055 Log::MessageBuilder msg(log_); | 1060 Log::MessageBuilder msg(log_); |
| 1056 msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR "\n", | 1061 msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR "\n", |
| 1057 library_path, | 1062 library_path.c_str(), |
| 1058 start, | 1063 start, |
| 1059 end); | 1064 end); |
| 1060 msg.WriteToLogFile(); | 1065 msg.WriteToLogFile(); |
| 1061 } | |
| 1062 | |
| 1063 | |
| 1064 void Logger::SharedLibraryEvent(const wchar_t* library_path, | |
| 1065 uintptr_t start, | |
| 1066 uintptr_t end) { | |
| 1067 if (!log_->IsEnabled() || !FLAG_prof) return; | |
| 1068 Log::MessageBuilder msg(log_); | |
| 1069 msg.Append("shared-library,\"%ls\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR "\n", | |
| 1070 library_path, | |
| 1071 start, | |
| 1072 end); | |
| 1073 msg.WriteToLogFile(); | |
| 1074 } | 1066 } |
| 1075 | 1067 |
| 1076 | 1068 |
| 1077 void Logger::CodeDeoptEvent(Code* code) { | 1069 void Logger::CodeDeoptEvent(Code* code) { |
| 1078 if (!log_->IsEnabled()) return; | 1070 if (!log_->IsEnabled()) return; |
| 1079 ASSERT(FLAG_log_internal_timer_events); | 1071 ASSERT(FLAG_log_internal_timer_events); |
| 1080 Log::MessageBuilder msg(log_); | 1072 Log::MessageBuilder msg(log_); |
| 1081 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds()); | 1073 int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds()); |
| 1082 msg.Append("code-deopt,%ld,%d\n", since_epoch, code->CodeSize()); | 1074 msg.Append("code-deopt,%ld,%d\n", since_epoch, code->CodeSize()); |
| 1083 msg.WriteToLogFile(); | 1075 msg.WriteToLogFile(); |
| (...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2117 if (jit_logger_) { | 2109 if (jit_logger_) { |
| 2118 removeCodeEventListener(jit_logger_); | 2110 removeCodeEventListener(jit_logger_); |
| 2119 delete jit_logger_; | 2111 delete jit_logger_; |
| 2120 jit_logger_ = NULL; | 2112 jit_logger_ = NULL; |
| 2121 } | 2113 } |
| 2122 | 2114 |
| 2123 return log_->Close(); | 2115 return log_->Close(); |
| 2124 } | 2116 } |
| 2125 | 2117 |
| 2126 } } // namespace v8::internal | 2118 } } // namespace v8::internal |
| OLD | NEW |