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

Side by Side Diff: test/cctest/test-cpu-profiler.cc

Issue 501323002: Replace our homegrown ARRAY_SIZE() with Chrome's arraysize(). (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
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 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 return NULL; 462 return NULL;
463 } 463 }
464 464
465 465
466 static const v8::CpuProfileNode* GetChild(v8::Isolate* isolate, 466 static const v8::CpuProfileNode* GetChild(v8::Isolate* isolate,
467 const v8::CpuProfileNode* node, 467 const v8::CpuProfileNode* node,
468 const char* name) { 468 const char* name) {
469 const v8::CpuProfileNode* result = FindChild(isolate, node, name); 469 const v8::CpuProfileNode* result = FindChild(isolate, node, name);
470 if (!result) { 470 if (!result) {
471 char buffer[100]; 471 char buffer[100];
472 i::SNPrintF(Vector<char>(buffer, ARRAY_SIZE(buffer)), 472 i::SNPrintF(Vector<char>(buffer, arraysize(buffer)),
473 "Failed to GetChild: %s", name); 473 "Failed to GetChild: %s", name);
474 FATAL(buffer); 474 FATAL(buffer);
475 } 475 }
476 return result; 476 return result;
477 } 477 }
478 478
479 479
480 static void CheckSimpleBranch(v8::Isolate* isolate, 480 static void CheckSimpleBranch(v8::Isolate* isolate,
481 const v8::CpuProfileNode* node, 481 const v8::CpuProfileNode* node,
482 const char* names[], int length) { 482 const char* names[], int length) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), 545 v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(),
546 cpu_profiler_test_source))->Run(); 546 cpu_profiler_test_source))->Run();
547 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 547 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
548 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 548 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
549 549
550 int32_t profiling_interval_ms = 200; 550 int32_t profiling_interval_ms = 200;
551 v8::Handle<v8::Value> args[] = { 551 v8::Handle<v8::Value> args[] = {
552 v8::Integer::New(env->GetIsolate(), profiling_interval_ms) 552 v8::Integer::New(env->GetIsolate(), profiling_interval_ms)
553 }; 553 };
554 v8::CpuProfile* profile = 554 v8::CpuProfile* profile =
555 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 200); 555 RunProfiler(env.local(), function, args, arraysize(args), 200);
556 function->Call(env->Global(), ARRAY_SIZE(args), args); 556 function->Call(env->Global(), arraysize(args), args);
557 557
558 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 558 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
559 559
560 ScopedVector<v8::Handle<v8::String> > names(3); 560 ScopedVector<v8::Handle<v8::String> > names(3);
561 names[0] = v8::String::NewFromUtf8( 561 names[0] = v8::String::NewFromUtf8(
562 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); 562 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
563 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), 563 names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
564 ProfileGenerator::kProgramEntryName); 564 ProfileGenerator::kProgramEntryName);
565 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); 565 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
566 CheckChildrenNames(root, names); 566 CheckChildrenNames(root, names);
567 567
568 const v8::CpuProfileNode* startNode = 568 const v8::CpuProfileNode* startNode =
569 GetChild(env->GetIsolate(), root, "start"); 569 GetChild(env->GetIsolate(), root, "start");
570 CHECK_EQ(1, startNode->GetChildrenCount()); 570 CHECK_EQ(1, startNode->GetChildrenCount());
571 571
572 const v8::CpuProfileNode* fooNode = 572 const v8::CpuProfileNode* fooNode =
573 GetChild(env->GetIsolate(), startNode, "foo"); 573 GetChild(env->GetIsolate(), startNode, "foo");
574 CHECK_EQ(3, fooNode->GetChildrenCount()); 574 CHECK_EQ(3, fooNode->GetChildrenCount());
575 575
576 const char* barBranch[] = { "bar", "delay", "loop" }; 576 const char* barBranch[] = { "bar", "delay", "loop" };
577 CheckSimpleBranch(env->GetIsolate(), fooNode, barBranch, 577 CheckSimpleBranch(env->GetIsolate(), fooNode, barBranch,
578 ARRAY_SIZE(barBranch)); 578 arraysize(barBranch));
579 const char* bazBranch[] = { "baz", "delay", "loop" }; 579 const char* bazBranch[] = { "baz", "delay", "loop" };
580 CheckSimpleBranch(env->GetIsolate(), fooNode, bazBranch, 580 CheckSimpleBranch(env->GetIsolate(), fooNode, bazBranch,
581 ARRAY_SIZE(bazBranch)); 581 arraysize(bazBranch));
582 const char* delayBranch[] = { "delay", "loop" }; 582 const char* delayBranch[] = { "delay", "loop" };
583 CheckSimpleBranch(env->GetIsolate(), fooNode, delayBranch, 583 CheckSimpleBranch(env->GetIsolate(), fooNode, delayBranch,
584 ARRAY_SIZE(delayBranch)); 584 arraysize(delayBranch));
585 585
586 profile->Delete(); 586 profile->Delete();
587 } 587 }
588 588
589 589
590 static const char* hot_deopt_no_frame_entry_test_source = 590 static const char* hot_deopt_no_frame_entry_test_source =
591 "function foo(a, b) {\n" 591 "function foo(a, b) {\n"
592 " try {\n" 592 " try {\n"
593 " return a + b;\n" 593 " return a + b;\n"
594 " } catch (e) { }\n" 594 " } catch (e) { }\n"
(...skipping 28 matching lines...) Expand all
623 env->GetIsolate(), 623 env->GetIsolate(),
624 hot_deopt_no_frame_entry_test_source))->Run(); 624 hot_deopt_no_frame_entry_test_source))->Run();
625 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 625 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
626 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 626 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
627 627
628 int32_t profiling_interval_ms = 200; 628 int32_t profiling_interval_ms = 200;
629 v8::Handle<v8::Value> args[] = { 629 v8::Handle<v8::Value> args[] = {
630 v8::Integer::New(env->GetIsolate(), profiling_interval_ms) 630 v8::Integer::New(env->GetIsolate(), profiling_interval_ms)
631 }; 631 };
632 v8::CpuProfile* profile = 632 v8::CpuProfile* profile =
633 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 200); 633 RunProfiler(env.local(), function, args, arraysize(args), 200);
634 function->Call(env->Global(), ARRAY_SIZE(args), args); 634 function->Call(env->Global(), arraysize(args), args);
635 635
636 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 636 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
637 637
638 ScopedVector<v8::Handle<v8::String> > names(3); 638 ScopedVector<v8::Handle<v8::String> > names(3);
639 names[0] = v8::String::NewFromUtf8( 639 names[0] = v8::String::NewFromUtf8(
640 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); 640 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
641 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), 641 names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
642 ProfileGenerator::kProgramEntryName); 642 ProfileGenerator::kProgramEntryName);
643 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); 643 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
644 CheckChildrenNames(root, names); 644 CheckChildrenNames(root, names);
(...skipping 15 matching lines...) Expand all
660 v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(), 660 v8::Script::Compile(v8::String::NewFromUtf8(env->GetIsolate(),
661 cpu_profiler_test_source))->Run(); 661 cpu_profiler_test_source))->Run();
662 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 662 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
663 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 663 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
664 664
665 int32_t profiling_interval_ms = 200; 665 int32_t profiling_interval_ms = 200;
666 v8::Handle<v8::Value> args[] = { 666 v8::Handle<v8::Value> args[] = {
667 v8::Integer::New(env->GetIsolate(), profiling_interval_ms) 667 v8::Integer::New(env->GetIsolate(), profiling_interval_ms)
668 }; 668 };
669 v8::CpuProfile* profile = 669 v8::CpuProfile* profile =
670 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 200, true); 670 RunProfiler(env.local(), function, args, arraysize(args), 200, true);
671 671
672 CHECK_LE(200, profile->GetSamplesCount()); 672 CHECK_LE(200, profile->GetSamplesCount());
673 uint64_t end_time = profile->GetEndTime(); 673 uint64_t end_time = profile->GetEndTime();
674 uint64_t current_time = profile->GetStartTime(); 674 uint64_t current_time = profile->GetStartTime();
675 CHECK_LE(current_time, end_time); 675 CHECK_LE(current_time, end_time);
676 for (int i = 0; i < profile->GetSamplesCount(); i++) { 676 for (int i = 0; i < profile->GetSamplesCount(); i++) {
677 CHECK_NE(NULL, profile->GetSample(i)); 677 CHECK_NE(NULL, profile->GetSample(i));
678 uint64_t timestamp = profile->GetSampleTimestamp(i); 678 uint64_t timestamp = profile->GetSampleTimestamp(i);
679 CHECK_LE(current_time, timestamp); 679 CHECK_LE(current_time, timestamp);
680 CHECK_LE(timestamp, end_time); 680 CHECK_LE(timestamp, end_time);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 716
717 int32_t repeat_count = 100; 717 int32_t repeat_count = 100;
718 #if defined(USE_SIMULATOR) 718 #if defined(USE_SIMULATOR)
719 // Simulators are much slower. 719 // Simulators are much slower.
720 repeat_count = 1; 720 repeat_count = 1;
721 #endif 721 #endif
722 v8::Handle<v8::Value> args[] = { 722 v8::Handle<v8::Value> args[] = {
723 v8::Integer::New(env->GetIsolate(), repeat_count) 723 v8::Integer::New(env->GetIsolate(), repeat_count)
724 }; 724 };
725 v8::CpuProfile* profile = 725 v8::CpuProfile* profile =
726 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 100); 726 RunProfiler(env.local(), function, args, arraysize(args), 100);
727 727
728 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 728 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
729 729
730 ScopedVector<v8::Handle<v8::String> > names(3); 730 ScopedVector<v8::Handle<v8::String> > names(3);
731 names[0] = v8::String::NewFromUtf8( 731 names[0] = v8::String::NewFromUtf8(
732 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); 732 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
733 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), 733 names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
734 ProfileGenerator::kProgramEntryName); 734 ProfileGenerator::kProgramEntryName);
735 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); 735 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
736 CheckChildrenNames(root, names); 736 CheckChildrenNames(root, names);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 836
837 v8::Script::Compile( 837 v8::Script::Compile(
838 v8::String::NewFromUtf8(isolate, native_accessor_test_source)) 838 v8::String::NewFromUtf8(isolate, native_accessor_test_source))
839 ->Run(); 839 ->Run();
840 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 840 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
841 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start"))); 841 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
842 842
843 int32_t repeat_count = 1; 843 int32_t repeat_count = 1;
844 v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) }; 844 v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) };
845 v8::CpuProfile* profile = 845 v8::CpuProfile* profile =
846 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 180); 846 RunProfiler(env.local(), function, args, arraysize(args), 180);
847 847
848 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 848 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
849 const v8::CpuProfileNode* startNode = 849 const v8::CpuProfileNode* startNode =
850 GetChild(isolate, root, "start"); 850 GetChild(isolate, root, "start");
851 GetChild(isolate, startNode, "get foo"); 851 GetChild(isolate, startNode, "get foo");
852 GetChild(isolate, startNode, "set foo"); 852 GetChild(isolate, startNode, "set foo");
853 853
854 profile->Delete(); 854 profile->Delete();
855 } 855 }
856 856
(...skipping 29 matching lines...) Expand all
886 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start"))); 886 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
887 887
888 { 888 {
889 // Make sure accessors ICs are in monomorphic state before starting 889 // Make sure accessors ICs are in monomorphic state before starting
890 // profiling. 890 // profiling.
891 accessors.set_warming_up(true); 891 accessors.set_warming_up(true);
892 int32_t warm_up_iterations = 3; 892 int32_t warm_up_iterations = 3;
893 v8::Handle<v8::Value> args[] = { 893 v8::Handle<v8::Value> args[] = {
894 v8::Integer::New(isolate, warm_up_iterations) 894 v8::Integer::New(isolate, warm_up_iterations)
895 }; 895 };
896 function->Call(env->Global(), ARRAY_SIZE(args), args); 896 function->Call(env->Global(), arraysize(args), args);
897 accessors.set_warming_up(false); 897 accessors.set_warming_up(false);
898 } 898 }
899 899
900 int32_t repeat_count = 100; 900 int32_t repeat_count = 100;
901 v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) }; 901 v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) };
902 v8::CpuProfile* profile = 902 v8::CpuProfile* profile =
903 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 200); 903 RunProfiler(env.local(), function, args, arraysize(args), 200);
904 904
905 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 905 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
906 const v8::CpuProfileNode* startNode = 906 const v8::CpuProfileNode* startNode =
907 GetChild(isolate, root, "start"); 907 GetChild(isolate, root, "start");
908 GetChild(isolate, startNode, "get foo"); 908 GetChild(isolate, startNode, "get foo");
909 GetChild(isolate, startNode, "set foo"); 909 GetChild(isolate, startNode, "set foo");
910 910
911 profile->Delete(); 911 profile->Delete();
912 } 912 }
913 913
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 instance); 947 instance);
948 948
949 v8::Script::Compile(v8::String::NewFromUtf8( 949 v8::Script::Compile(v8::String::NewFromUtf8(
950 isolate, native_method_test_source))->Run(); 950 isolate, native_method_test_source))->Run();
951 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 951 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
952 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start"))); 952 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
953 953
954 int32_t repeat_count = 1; 954 int32_t repeat_count = 1;
955 v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) }; 955 v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) };
956 v8::CpuProfile* profile = 956 v8::CpuProfile* profile =
957 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 100); 957 RunProfiler(env.local(), function, args, arraysize(args), 100);
958 958
959 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 959 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
960 const v8::CpuProfileNode* startNode = 960 const v8::CpuProfileNode* startNode =
961 GetChild(isolate, root, "start"); 961 GetChild(isolate, root, "start");
962 GetChild(isolate, startNode, "fooMethod"); 962 GetChild(isolate, startNode, "fooMethod");
963 963
964 profile->Delete(); 964 profile->Delete();
965 } 965 }
966 966
967 967
(...skipping 29 matching lines...) Expand all
997 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 997 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
998 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start"))); 998 env->Global()->Get(v8::String::NewFromUtf8(isolate, "start")));
999 { 999 {
1000 // Make sure method ICs are in monomorphic state before starting 1000 // Make sure method ICs are in monomorphic state before starting
1001 // profiling. 1001 // profiling.
1002 callbacks.set_warming_up(true); 1002 callbacks.set_warming_up(true);
1003 int32_t warm_up_iterations = 3; 1003 int32_t warm_up_iterations = 3;
1004 v8::Handle<v8::Value> args[] = { 1004 v8::Handle<v8::Value> args[] = {
1005 v8::Integer::New(isolate, warm_up_iterations) 1005 v8::Integer::New(isolate, warm_up_iterations)
1006 }; 1006 };
1007 function->Call(env->Global(), ARRAY_SIZE(args), args); 1007 function->Call(env->Global(), arraysize(args), args);
1008 callbacks.set_warming_up(false); 1008 callbacks.set_warming_up(false);
1009 } 1009 }
1010 1010
1011 int32_t repeat_count = 100; 1011 int32_t repeat_count = 100;
1012 v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) }; 1012 v8::Handle<v8::Value> args[] = { v8::Integer::New(isolate, repeat_count) };
1013 v8::CpuProfile* profile = 1013 v8::CpuProfile* profile =
1014 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 100); 1014 RunProfiler(env.local(), function, args, arraysize(args), 100);
1015 1015
1016 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 1016 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
1017 GetChild(isolate, root, "start"); 1017 GetChild(isolate, root, "start");
1018 const v8::CpuProfileNode* startNode = 1018 const v8::CpuProfileNode* startNode =
1019 GetChild(isolate, root, "start"); 1019 GetChild(isolate, root, "start");
1020 GetChild(isolate, startNode, "fooMethod"); 1020 GetChild(isolate, startNode, "fooMethod");
1021 1021
1022 profile->Delete(); 1022 profile->Delete();
1023 } 1023 }
1024 1024
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 v8::Script::Compile(v8::String::NewFromUtf8( 1098 v8::Script::Compile(v8::String::NewFromUtf8(
1099 env->GetIsolate(), call_function_test_source))->Run(); 1099 env->GetIsolate(), call_function_test_source))->Run();
1100 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 1100 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
1101 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 1101 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
1102 1102
1103 int32_t duration_ms = 100; 1103 int32_t duration_ms = 100;
1104 v8::Handle<v8::Value> args[] = { 1104 v8::Handle<v8::Value> args[] = {
1105 v8::Integer::New(env->GetIsolate(), duration_ms) 1105 v8::Integer::New(env->GetIsolate(), duration_ms)
1106 }; 1106 };
1107 v8::CpuProfile* profile = 1107 v8::CpuProfile* profile =
1108 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 100); 1108 RunProfiler(env.local(), function, args, arraysize(args), 100);
1109 1109
1110 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 1110 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
1111 { 1111 {
1112 ScopedVector<v8::Handle<v8::String> > names(4); 1112 ScopedVector<v8::Handle<v8::String> > names(4);
1113 names[0] = v8::String::NewFromUtf8( 1113 names[0] = v8::String::NewFromUtf8(
1114 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); 1114 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
1115 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), 1115 names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
1116 ProfileGenerator::kProgramEntryName); 1116 ProfileGenerator::kProgramEntryName);
1117 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); 1117 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
1118 names[3] = v8::String::NewFromUtf8( 1118 names[3] = v8::String::NewFromUtf8(
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1181 ->Run(); 1181 ->Run();
1182 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast( 1182 v8::Local<v8::Function> function = v8::Local<v8::Function>::Cast(
1183 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start"))); 1183 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "start")));
1184 1184
1185 int32_t duration_ms = 100; 1185 int32_t duration_ms = 100;
1186 v8::Handle<v8::Value> args[] = { 1186 v8::Handle<v8::Value> args[] = {
1187 v8::Integer::New(env->GetIsolate(), duration_ms) 1187 v8::Integer::New(env->GetIsolate(), duration_ms)
1188 }; 1188 };
1189 1189
1190 v8::CpuProfile* profile = 1190 v8::CpuProfile* profile =
1191 RunProfiler(env.local(), function, args, ARRAY_SIZE(args), 100); 1191 RunProfiler(env.local(), function, args, arraysize(args), 100);
1192 1192
1193 const v8::CpuProfileNode* root = profile->GetTopDownRoot(); 1193 const v8::CpuProfileNode* root = profile->GetTopDownRoot();
1194 { 1194 {
1195 ScopedVector<v8::Handle<v8::String> > names(3); 1195 ScopedVector<v8::Handle<v8::String> > names(3);
1196 names[0] = v8::String::NewFromUtf8( 1196 names[0] = v8::String::NewFromUtf8(
1197 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName); 1197 env->GetIsolate(), ProfileGenerator::kGarbageCollectorEntryName);
1198 names[1] = v8::String::NewFromUtf8(env->GetIsolate(), 1198 names[1] = v8::String::NewFromUtf8(env->GetIsolate(),
1199 ProfileGenerator::kProgramEntryName); 1199 ProfileGenerator::kProgramEntryName);
1200 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start"); 1200 names[2] = v8::String::NewFromUtf8(env->GetIsolate(), "start");
1201 // Don't allow |test|, |bar| and |apply| nodes to be at the top level. 1201 // Don't allow |test|, |bar| and |apply| nodes to be at the top level.
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
1314 "}\n" 1314 "}\n"
1315 "function start() {\n" 1315 "function start() {\n"
1316 " try {\n" 1316 " try {\n"
1317 " CallJsFunction(bar);\n" 1317 " CallJsFunction(bar);\n"
1318 " } catch(e) {}\n" 1318 " } catch(e) {}\n"
1319 "}"; 1319 "}";
1320 1320
1321 static void CallJsFunction(const v8::FunctionCallbackInfo<v8::Value>& info) { 1321 static void CallJsFunction(const v8::FunctionCallbackInfo<v8::Value>& info) {
1322 v8::Handle<v8::Function> function = info[0].As<v8::Function>(); 1322 v8::Handle<v8::Function> function = info[0].As<v8::Function>();
1323 v8::Handle<v8::Value> argv[] = { info[1] }; 1323 v8::Handle<v8::Value> argv[] = { info[1] };
1324 function->Call(info.This(), ARRAY_SIZE(argv), argv); 1324 function->Call(info.This(), arraysize(argv), argv);
1325 } 1325 }
1326 1326
1327 1327
1328 // [Top down]: 1328 // [Top down]:
1329 // 58 0 (root) #0 1 1329 // 58 0 (root) #0 1
1330 // 2 2 (program) #0 2 1330 // 2 2 (program) #0 2
1331 // 56 1 start #16 3 1331 // 56 1 start #16 3
1332 // 55 0 CallJsFunction #0 4 1332 // 55 0 CallJsFunction #0 4
1333 // 55 1 bar #16 5 1333 // 55 1 bar #16 5
1334 // 54 54 foo #16 6 1334 // 54 54 foo #16 6
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
1674 inner_profile = NULL; 1674 inner_profile = NULL;
1675 CHECK_EQ(0, iprofiler->GetProfilesCount()); 1675 CHECK_EQ(0, iprofiler->GetProfilesCount());
1676 1676
1677 v8::CpuProfile* outer_profile = profiler->StopProfiling(outer); 1677 v8::CpuProfile* outer_profile = profiler->StopProfiling(outer);
1678 CHECK(outer_profile); 1678 CHECK(outer_profile);
1679 CHECK_EQ(1, iprofiler->GetProfilesCount()); 1679 CHECK_EQ(1, iprofiler->GetProfilesCount());
1680 outer_profile->Delete(); 1680 outer_profile->Delete();
1681 outer_profile = NULL; 1681 outer_profile = NULL;
1682 CHECK_EQ(0, iprofiler->GetProfilesCount()); 1682 CHECK_EQ(0, iprofiler->GetProfilesCount());
1683 } 1683 }
OLDNEW
« src/base/macros.h ('K') | « test/cctest/test-compiler.cc ('k') | test/cctest/test-date.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698