| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 const char* it = strstr(src, substring); | 64 const char* it = strstr(src, substring); |
| 65 CHECK(it); | 65 CHECK(it); |
| 66 return static_cast<size_t>(it - src); | 66 return static_cast<size_t>(it - src); |
| 67 } | 67 } |
| 68 | 68 |
| 69 static const char* reason(const i::DeoptimizeReason reason) { | 69 static const char* reason(const i::DeoptimizeReason reason) { |
| 70 return i::DeoptimizeReasonToString(reason); | 70 return i::DeoptimizeReasonToString(reason); |
| 71 } | 71 } |
| 72 | 72 |
| 73 TEST(StartStop) { | 73 TEST(StartStop) { |
| 74 CpuProfilesCollection profiles(CcTest::i_isolate()); | 74 i::Isolate* isolate = CcTest::i_isolate(); |
| 75 ProfileGenerator generator(&profiles); | 75 CpuProfilesCollection profiles(isolate); |
| 76 ProfileGenerator generator(isolate, &profiles); |
| 76 std::unique_ptr<ProfilerEventsProcessor> processor( | 77 std::unique_ptr<ProfilerEventsProcessor> processor( |
| 77 new ProfilerEventsProcessor(CcTest::i_isolate(), &generator, | 78 new ProfilerEventsProcessor(isolate, &generator, |
| 78 v8::base::TimeDelta::FromMicroseconds(100))); | 79 v8::base::TimeDelta::FromMicroseconds(100))); |
| 79 processor->Start(); | 80 processor->Start(); |
| 80 processor->StopSynchronously(); | 81 processor->StopSynchronously(); |
| 81 } | 82 } |
| 82 | 83 |
| 83 static void EnqueueTickSampleEvent(ProfilerEventsProcessor* proc, | 84 static void EnqueueTickSampleEvent(ProfilerEventsProcessor* proc, |
| 84 i::Address frame1, | 85 i::Address frame1, |
| 85 i::Address frame2 = NULL, | 86 i::Address frame2 = NULL, |
| 86 i::Address frame3 = NULL) { | 87 i::Address frame3 = NULL) { |
| 87 v8::TickSample* sample = proc->StartTickSample(); | 88 v8::TickSample* sample = proc->StartTickSample(); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 | 151 |
| 151 i::AbstractCode* aaa_code = CreateCode(&env); | 152 i::AbstractCode* aaa_code = CreateCode(&env); |
| 152 i::AbstractCode* comment_code = CreateCode(&env); | 153 i::AbstractCode* comment_code = CreateCode(&env); |
| 153 i::AbstractCode* args5_code = CreateCode(&env); | 154 i::AbstractCode* args5_code = CreateCode(&env); |
| 154 i::AbstractCode* comment2_code = CreateCode(&env); | 155 i::AbstractCode* comment2_code = CreateCode(&env); |
| 155 i::AbstractCode* moved_code = CreateCode(&env); | 156 i::AbstractCode* moved_code = CreateCode(&env); |
| 156 i::AbstractCode* args3_code = CreateCode(&env); | 157 i::AbstractCode* args3_code = CreateCode(&env); |
| 157 i::AbstractCode* args4_code = CreateCode(&env); | 158 i::AbstractCode* args4_code = CreateCode(&env); |
| 158 | 159 |
| 159 CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate); | 160 CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate); |
| 160 ProfileGenerator* generator = new ProfileGenerator(profiles); | 161 ProfileGenerator* generator = new ProfileGenerator(isolate, profiles); |
| 161 ProfilerEventsProcessor* processor = | 162 ProfilerEventsProcessor* processor = new ProfilerEventsProcessor( |
| 162 new ProfilerEventsProcessor(CcTest::i_isolate(), generator, | 163 isolate, generator, v8::base::TimeDelta::FromMicroseconds(100)); |
| 163 v8::base::TimeDelta::FromMicroseconds(100)); | |
| 164 CpuProfiler profiler(isolate, profiles, generator, processor); | 164 CpuProfiler profiler(isolate, profiles, generator, processor); |
| 165 profiles->StartProfiling("", false); | 165 profiles->StartProfiling("", false); |
| 166 processor->Start(); | 166 processor->Start(); |
| 167 ProfilerListener profiler_listener(isolate); | 167 ProfilerListener profiler_listener(isolate); |
| 168 isolate->code_event_dispatcher()->AddListener(&profiler_listener); | 168 isolate->code_event_dispatcher()->AddListener(&profiler_listener); |
| 169 profiler_listener.AddObserver(&profiler); | 169 profiler_listener.AddObserver(&profiler); |
| 170 | 170 |
| 171 // Enqueue code creation events. | 171 // Enqueue code creation events. |
| 172 const char* aaa_str = "aaa"; | 172 const char* aaa_str = "aaa"; |
| 173 i::Handle<i::String> aaa_name = factory->NewStringFromAsciiChecked(aaa_str); | 173 i::Handle<i::String> aaa_name = factory->NewStringFromAsciiChecked(aaa_str); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 TestSetup test_setup; | 219 TestSetup test_setup; |
| 220 LocalContext env; | 220 LocalContext env; |
| 221 i::Isolate* isolate = CcTest::i_isolate(); | 221 i::Isolate* isolate = CcTest::i_isolate(); |
| 222 i::HandleScope scope(isolate); | 222 i::HandleScope scope(isolate); |
| 223 | 223 |
| 224 i::AbstractCode* frame1_code = CreateCode(&env); | 224 i::AbstractCode* frame1_code = CreateCode(&env); |
| 225 i::AbstractCode* frame2_code = CreateCode(&env); | 225 i::AbstractCode* frame2_code = CreateCode(&env); |
| 226 i::AbstractCode* frame3_code = CreateCode(&env); | 226 i::AbstractCode* frame3_code = CreateCode(&env); |
| 227 | 227 |
| 228 CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate); | 228 CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate); |
| 229 ProfileGenerator* generator = new ProfileGenerator(profiles); | 229 ProfileGenerator* generator = new ProfileGenerator(isolate, profiles); |
| 230 ProfilerEventsProcessor* processor = | 230 ProfilerEventsProcessor* processor = |
| 231 new ProfilerEventsProcessor(CcTest::i_isolate(), generator, | 231 new ProfilerEventsProcessor(CcTest::i_isolate(), generator, |
| 232 v8::base::TimeDelta::FromMicroseconds(100)); | 232 v8::base::TimeDelta::FromMicroseconds(100)); |
| 233 CpuProfiler profiler(isolate, profiles, generator, processor); | 233 CpuProfiler profiler(isolate, profiles, generator, processor); |
| 234 profiles->StartProfiling("", false); | 234 profiles->StartProfiling("", false); |
| 235 processor->Start(); | 235 processor->Start(); |
| 236 ProfilerListener profiler_listener(isolate); | 236 ProfilerListener profiler_listener(isolate); |
| 237 isolate->code_event_dispatcher()->AddListener(&profiler_listener); | 237 isolate->code_event_dispatcher()->AddListener(&profiler_listener); |
| 238 profiler_listener.AddObserver(&profiler); | 238 profiler_listener.AddObserver(&profiler); |
| 239 | 239 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 // Long stacks (exceeding max frames limit) must not be erased. | 292 // Long stacks (exceeding max frames limit) must not be erased. |
| 293 TEST(Issue1398) { | 293 TEST(Issue1398) { |
| 294 TestSetup test_setup; | 294 TestSetup test_setup; |
| 295 LocalContext env; | 295 LocalContext env; |
| 296 i::Isolate* isolate = CcTest::i_isolate(); | 296 i::Isolate* isolate = CcTest::i_isolate(); |
| 297 i::HandleScope scope(isolate); | 297 i::HandleScope scope(isolate); |
| 298 | 298 |
| 299 i::AbstractCode* code = CreateCode(&env); | 299 i::AbstractCode* code = CreateCode(&env); |
| 300 | 300 |
| 301 CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate); | 301 CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate); |
| 302 ProfileGenerator* generator = new ProfileGenerator(profiles); | 302 ProfileGenerator* generator = new ProfileGenerator(isolate, profiles); |
| 303 ProfilerEventsProcessor* processor = | 303 ProfilerEventsProcessor* processor = |
| 304 new ProfilerEventsProcessor(CcTest::i_isolate(), generator, | 304 new ProfilerEventsProcessor(CcTest::i_isolate(), generator, |
| 305 v8::base::TimeDelta::FromMicroseconds(100)); | 305 v8::base::TimeDelta::FromMicroseconds(100)); |
| 306 CpuProfiler profiler(isolate, profiles, generator, processor); | 306 CpuProfiler profiler(isolate, profiles, generator, processor); |
| 307 profiles->StartProfiling("", false); | 307 profiles->StartProfiling("", false); |
| 308 processor->Start(); | 308 processor->Start(); |
| 309 ProfilerListener profiler_listener(isolate); | 309 ProfilerListener profiler_listener(isolate); |
| 310 isolate->code_event_dispatcher()->AddListener(&profiler_listener); | 310 isolate->code_event_dispatcher()->AddListener(&profiler_listener); |
| 311 profiler_listener.AddObserver(&profiler); | 311 profiler_listener.AddObserver(&profiler); |
| 312 | 312 |
| (...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1066 CHECK(func->shared()); | 1066 CHECK(func->shared()); |
| 1067 CHECK(func->shared()->abstract_code()); | 1067 CHECK(func->shared()->abstract_code()); |
| 1068 CHECK(!optimize || func->IsOptimized() || | 1068 CHECK(!optimize || func->IsOptimized() || |
| 1069 !CcTest::i_isolate()->use_crankshaft()); | 1069 !CcTest::i_isolate()->use_crankshaft()); |
| 1070 i::AbstractCode* code = func->abstract_code(); | 1070 i::AbstractCode* code = func->abstract_code(); |
| 1071 CHECK(code); | 1071 CHECK(code); |
| 1072 i::Address code_address = code->instruction_start(); | 1072 i::Address code_address = code->instruction_start(); |
| 1073 CHECK(code_address); | 1073 CHECK(code_address); |
| 1074 | 1074 |
| 1075 CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate); | 1075 CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate); |
| 1076 ProfileGenerator* generator = new ProfileGenerator(profiles); | 1076 ProfileGenerator* generator = new ProfileGenerator(isolate, profiles); |
| 1077 ProfilerEventsProcessor* processor = | 1077 ProfilerEventsProcessor* processor = |
| 1078 new ProfilerEventsProcessor(CcTest::i_isolate(), generator, | 1078 new ProfilerEventsProcessor(CcTest::i_isolate(), generator, |
| 1079 v8::base::TimeDelta::FromMicroseconds(100)); | 1079 v8::base::TimeDelta::FromMicroseconds(100)); |
| 1080 CpuProfiler profiler(isolate, profiles, generator, processor); | 1080 CpuProfiler profiler(isolate, profiles, generator, processor); |
| 1081 profiles->StartProfiling("", false); | 1081 profiles->StartProfiling("", false); |
| 1082 processor->Start(); | 1082 processor->Start(); |
| 1083 ProfilerListener profiler_listener(isolate); | 1083 ProfilerListener profiler_listener(isolate); |
| 1084 isolate->code_event_dispatcher()->AddListener(&profiler_listener); | 1084 isolate->code_event_dispatcher()->AddListener(&profiler_listener); |
| 1085 profiler_listener.AddObserver(&profiler); | 1085 profiler_listener.AddObserver(&profiler); |
| 1086 | 1086 |
| (...skipping 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2170 printf("Profile JSON: %s\n", profile_json.c_str()); | 2170 printf("Profile JSON: %s\n", profile_json.c_str()); |
| 2171 std::string code = profile_checker + profile_json + ")"; | 2171 std::string code = profile_checker + profile_json + ")"; |
| 2172 v8::Local<v8::Value> result = | 2172 v8::Local<v8::Value> result = |
| 2173 CompileRunChecked(CcTest::isolate(), code.c_str()); | 2173 CompileRunChecked(CcTest::isolate(), code.c_str()); |
| 2174 v8::String::Utf8Value value(result); | 2174 v8::String::Utf8Value value(result); |
| 2175 printf("Check result: %*s\n", value.length(), *value); | 2175 printf("Check result: %*s\n", value.length(), *value); |
| 2176 CHECK_EQ(0, value.length()); | 2176 CHECK_EQ(0, value.length()); |
| 2177 | 2177 |
| 2178 i::V8::SetPlatformForTesting(old_platform); | 2178 i::V8::SetPlatformForTesting(old_platform); |
| 2179 } | 2179 } |
| OLD | NEW |