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

Side by Side Diff: runtime/vm/benchmark_test.cc

Issue 411633002: Fix for issue 19817 (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 5 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
« no previous file with comments | « runtime/bin/vmservice_impl.cc ('k') | runtime/vm/bootstrap.cc » ('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 (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/benchmark_test.h" 5 #include "vm/benchmark_test.h"
6 6
7 #include "bin/builtin.h" 7 #include "bin/builtin.h"
8 #include "bin/file.h" 8 #include "bin/file.h"
9 9
10 #include "platform/assert.h" 10 #include "platform/assert.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 "void benchmark(int count) {\n" 146 "void benchmark(int count) {\n"
147 " Class c = new Class();\n" 147 " Class c = new Class();\n"
148 " c.init();\n" 148 " c.init();\n"
149 " for (int i = 0; i < count; i++) {\n" 149 " for (int i = 0; i < count; i++) {\n"
150 " c.method(i,7);\n" 150 " c.method(i,7);\n"
151 " }\n" 151 " }\n"
152 "}\n"; 152 "}\n";
153 153
154 Dart_Handle lib = TestCase::LoadTestScript( 154 Dart_Handle lib = TestCase::LoadTestScript(
155 kScriptChars, 155 kScriptChars,
156 reinterpret_cast<Dart_NativeEntryResolver>(bm_uda_lookup)); 156 reinterpret_cast<Dart_NativeEntryResolver>(bm_uda_lookup),
157 USER_TEST_URI,
158 false);
157 159
158 // Create a native wrapper class with native fields. 160 // Create a native wrapper class with native fields.
159 Dart_Handle result = Dart_CreateNativeWrapperClass( 161 Dart_Handle result = Dart_CreateNativeWrapperClass(
160 lib, NewString("NativeFieldsWrapper"), 1); 162 lib, NewString("NativeFieldsWrapper"), 1);
161 EXPECT_VALID(result); 163 EXPECT_VALID(result);
164 result = Dart_FinalizeLoading(false);
165 EXPECT_VALID(result);
162 166
163 Dart_Handle args[1]; 167 Dart_Handle args[1];
164 args[0] = Dart_NewInteger(kNumIterations); 168 args[0] = Dart_NewInteger(kNumIterations);
165 169
166 // Warmup first to avoid compilation jitters. 170 // Warmup first to avoid compilation jitters.
167 Dart_Invoke(lib, NewString("benchmark"), 1, args); 171 Dart_Invoke(lib, NewString("benchmark"), 1, args);
168 172
169 Timer timer(true, "UseDartApi benchmark"); 173 Timer timer(true, "UseDartApi benchmark");
170 timer.Start(); 174 timer.Start();
171 Dart_Invoke(lib, NewString("benchmark"), 1, args); 175 Dart_Invoke(lib, NewString("benchmark"), 1, args);
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 "import 'dart:isolate';\n" 408 "import 'dart:isolate';\n"
405 "import 'dart:mirrors';\n" 409 "import 'dart:mirrors';\n"
406 "import 'dart:typed_data';\n" 410 "import 'dart:typed_data';\n"
407 "\n"; 411 "\n";
408 412
409 // Start an Isolate, load a script and create a full snapshot. 413 // Start an Isolate, load a script and create a full snapshot.
410 uint8_t* buffer; 414 uint8_t* buffer;
411 // Need to load the script into the dart: core library due to 415 // Need to load the script into the dart: core library due to
412 // the import of dart:_internal. 416 // the import of dart:_internal.
413 TestCase::LoadCoreTestScript(kScriptChars, NULL); 417 TestCase::LoadCoreTestScript(kScriptChars, NULL);
414 Api::CheckIsolateState(Isolate::Current()); 418 Api::CheckAndFinalizePendingClasses(Isolate::Current());
415 419
416 // Write snapshot with object content. 420 // Write snapshot with object content.
417 FullSnapshotWriter writer(&buffer, &malloc_allocator); 421 FullSnapshotWriter writer(&buffer, &malloc_allocator);
418 writer.WriteFullSnapshot(); 422 writer.WriteFullSnapshot();
419 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); 423 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer);
420 ASSERT(snapshot->kind() == Snapshot::kFull); 424 ASSERT(snapshot->kind() == Snapshot::kFull);
421 benchmark->set_score(snapshot->length()); 425 benchmark->set_score(snapshot->length());
422 } 426 }
423 427
424 428
(...skipping 10 matching lines...) Expand all
435 "import 'dart:typed_data';\n" 439 "import 'dart:typed_data';\n"
436 "import 'dart:_builtin';\n" 440 "import 'dart:_builtin';\n"
437 "import 'dart:io';\n" 441 "import 'dart:io';\n"
438 "\n"; 442 "\n";
439 443
440 // Start an Isolate, load a script and create a full snapshot. 444 // Start an Isolate, load a script and create a full snapshot.
441 uint8_t* buffer; 445 uint8_t* buffer;
442 // Need to load the script into the dart: core library due to 446 // Need to load the script into the dart: core library due to
443 // the import of dart:_internal. 447 // the import of dart:_internal.
444 TestCase::LoadCoreTestScript(kScriptChars, NULL); 448 TestCase::LoadCoreTestScript(kScriptChars, NULL);
445 Api::CheckIsolateState(Isolate::Current()); 449 Api::CheckAndFinalizePendingClasses(Isolate::Current());
446 450
447 // Write snapshot with object content. 451 // Write snapshot with object content.
448 FullSnapshotWriter writer(&buffer, &malloc_allocator); 452 FullSnapshotWriter writer(&buffer, &malloc_allocator);
449 writer.WriteFullSnapshot(); 453 writer.WriteFullSnapshot();
450 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); 454 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer);
451 ASSERT(snapshot->kind() == Snapshot::kFull); 455 ASSERT(snapshot->kind() == Snapshot::kFull);
452 benchmark->set_score(snapshot->length()); 456 benchmark->set_score(snapshot->length());
453 } 457 }
454 458
455 459
(...skipping 15 matching lines...) Expand all
471 benchmark->set_score(elapsed_time); 475 benchmark->set_score(elapsed_time);
472 } 476 }
473 477
474 478
475 BENCHMARK(EnterExitIsolate) { 479 BENCHMARK(EnterExitIsolate) {
476 const char* kScriptChars = 480 const char* kScriptChars =
477 "import 'dart:core';\n" 481 "import 'dart:core';\n"
478 "\n"; 482 "\n";
479 const intptr_t kLoopCount = 1000000; 483 const intptr_t kLoopCount = 1000000;
480 TestCase::LoadTestScript(kScriptChars, NULL); 484 TestCase::LoadTestScript(kScriptChars, NULL);
481 Api::CheckIsolateState(Isolate::Current()); 485 Api::CheckAndFinalizePendingClasses(Isolate::Current());
482 Dart_Isolate isolate = Dart_CurrentIsolate(); 486 Dart_Isolate isolate = Dart_CurrentIsolate();
483 Timer timer(true, "Enter and Exit isolate"); 487 Timer timer(true, "Enter and Exit isolate");
484 timer.Start(); 488 timer.Start();
485 for (intptr_t i = 0; i < kLoopCount; i++) { 489 for (intptr_t i = 0; i < kLoopCount; i++) {
486 Dart_ExitIsolate(); 490 Dart_ExitIsolate();
487 Dart_EnterIsolate(isolate); 491 Dart_EnterIsolate(isolate);
488 } 492 }
489 timer.Stop(); 493 timer.Stop();
490 int64_t elapsed_time = timer.TotalElapsedTime(); 494 int64_t elapsed_time = timer.TotalElapsedTime();
491 benchmark->set_score(elapsed_time); 495 benchmark->set_score(elapsed_time);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 SnapshotReader reader(buffer, buffer_len, Snapshot::kMessage, isolate); 565 SnapshotReader reader(buffer, buffer_len, Snapshot::kMessage, isolate);
562 reader.ReadObject(); 566 reader.ReadObject();
563 free(buffer); 567 free(buffer);
564 } 568 }
565 timer.Stop(); 569 timer.Stop();
566 int64_t elapsed_time = timer.TotalElapsedTime(); 570 int64_t elapsed_time = timer.TotalElapsedTime();
567 benchmark->set_score(elapsed_time); 571 benchmark->set_score(elapsed_time);
568 } 572 }
569 573
570 } // namespace dart 574 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/bin/vmservice_impl.cc ('k') | runtime/vm/bootstrap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698