| OLD | NEW |
| 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 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 "import 'dart:collection';\n" | 431 "import 'dart:collection';\n" |
| 432 "import 'dart:_internal';\n" | 432 "import 'dart:_internal';\n" |
| 433 "import 'dart:math';\n" | 433 "import 'dart:math';\n" |
| 434 "import 'dart:isolate';\n" | 434 "import 'dart:isolate';\n" |
| 435 "import 'dart:mirrors';\n" | 435 "import 'dart:mirrors';\n" |
| 436 "import 'dart:typed_data';\n" | 436 "import 'dart:typed_data';\n" |
| 437 "\n"; | 437 "\n"; |
| 438 | 438 |
| 439 // Start an Isolate, load a script and create a full snapshot. | 439 // Start an Isolate, load a script and create a full snapshot. |
| 440 uint8_t* buffer; | 440 uint8_t* buffer; |
| 441 TestCase::LoadTestScript(kScriptChars, NULL); | 441 // Need to load the script into the dart: core library due to |
| 442 // the import of dart:_internal. |
| 443 TestCase::LoadCoreTestScript(kScriptChars, NULL); |
| 442 Api::CheckIsolateState(Isolate::Current()); | 444 Api::CheckIsolateState(Isolate::Current()); |
| 443 | 445 |
| 444 // Write snapshot with object content. | 446 // Write snapshot with object content. |
| 445 FullSnapshotWriter writer(&buffer, &malloc_allocator); | 447 FullSnapshotWriter writer(&buffer, &malloc_allocator); |
| 446 writer.WriteFullSnapshot(); | 448 writer.WriteFullSnapshot(); |
| 447 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); | 449 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); |
| 448 ASSERT(snapshot->kind() == Snapshot::kFull); | 450 ASSERT(snapshot->kind() == Snapshot::kFull); |
| 449 benchmark->set_score(snapshot->length()); | 451 benchmark->set_score(snapshot->length()); |
| 450 } | 452 } |
| 451 | 453 |
| 452 | 454 |
| 453 BENCHMARK(StandaloneSnapshotSize) { | 455 BENCHMARK(StandaloneSnapshotSize) { |
| 454 const char* kScriptChars = | 456 const char* kScriptChars = |
| 455 "import 'dart:async';\n" | 457 "import 'dart:async';\n" |
| 456 "import 'dart:core';\n" | 458 "import 'dart:core';\n" |
| 457 "import 'dart:collection';\n" | 459 "import 'dart:collection';\n" |
| 458 "import 'dart:_internal';\n" | 460 "import 'dart:_internal';\n" |
| 459 "import 'dart:convert';\n" | 461 "import 'dart:convert';\n" |
| 460 "import 'dart:math';\n" | 462 "import 'dart:math';\n" |
| 461 "import 'dart:isolate';\n" | 463 "import 'dart:isolate';\n" |
| 462 "import 'dart:mirrors';\n" | 464 "import 'dart:mirrors';\n" |
| 463 "import 'dart:typed_data';\n" | 465 "import 'dart:typed_data';\n" |
| 464 "import 'dart:builtin';\n" | 466 "import 'dart:builtin';\n" |
| 465 "import 'dart:io';\n" | 467 "import 'dart:io';\n" |
| 466 "\n"; | 468 "\n"; |
| 467 | 469 |
| 468 // Start an Isolate, load a script and create a full snapshot. | 470 // Start an Isolate, load a script and create a full snapshot. |
| 469 uint8_t* buffer; | 471 uint8_t* buffer; |
| 470 TestCase::LoadTestScript(kScriptChars, NULL); | 472 // Need to load the script into the dart: core library due to |
| 473 // the import of dart:_internal. |
| 474 TestCase::LoadCoreTestScript(kScriptChars, NULL); |
| 471 Api::CheckIsolateState(Isolate::Current()); | 475 Api::CheckIsolateState(Isolate::Current()); |
| 472 | 476 |
| 473 // Write snapshot with object content. | 477 // Write snapshot with object content. |
| 474 FullSnapshotWriter writer(&buffer, &malloc_allocator); | 478 FullSnapshotWriter writer(&buffer, &malloc_allocator); |
| 475 writer.WriteFullSnapshot(); | 479 writer.WriteFullSnapshot(); |
| 476 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); | 480 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); |
| 477 ASSERT(snapshot->kind() == Snapshot::kFull); | 481 ASSERT(snapshot->kind() == Snapshot::kFull); |
| 478 benchmark->set_score(snapshot->length()); | 482 benchmark->set_score(snapshot->length()); |
| 479 } | 483 } |
| 480 | 484 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 SnapshotReader reader(buffer, buffer_len, Snapshot::kMessage, isolate); | 591 SnapshotReader reader(buffer, buffer_len, Snapshot::kMessage, isolate); |
| 588 reader.ReadObject(); | 592 reader.ReadObject(); |
| 589 free(buffer); | 593 free(buffer); |
| 590 } | 594 } |
| 591 timer.Stop(); | 595 timer.Stop(); |
| 592 int64_t elapsed_time = timer.TotalElapsedTime(); | 596 int64_t elapsed_time = timer.TotalElapsedTime(); |
| 593 benchmark->set_score(elapsed_time); | 597 benchmark->set_score(elapsed_time); |
| 594 } | 598 } |
| 595 | 599 |
| 596 } // namespace dart | 600 } // namespace dart |
| OLD | NEW |