| 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 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 534 uint8_t* buffer; | 534 uint8_t* buffer; |
| 535 Timer timer(true, "Serialize Null"); | 535 Timer timer(true, "Serialize Null"); |
| 536 timer.Start(); | 536 timer.Start(); |
| 537 for (intptr_t i = 0; i < kLoopCount; i++) { | 537 for (intptr_t i = 0; i < kLoopCount; i++) { |
| 538 StackZone zone(isolate); | 538 StackZone zone(isolate); |
| 539 MessageWriter writer(&buffer, &message_allocator, true); | 539 MessageWriter writer(&buffer, &message_allocator, true); |
| 540 writer.WriteMessage(null_object); | 540 writer.WriteMessage(null_object); |
| 541 intptr_t buffer_len = writer.BytesWritten(); | 541 intptr_t buffer_len = writer.BytesWritten(); |
| 542 | 542 |
| 543 // Read object back from the snapshot. | 543 // Read object back from the snapshot. |
| 544 SnapshotReader reader(buffer, buffer_len, Snapshot::kMessage, isolate, | 544 MessageSnapshotReader reader(buffer, |
| 545 zone.GetZone()); | 545 buffer_len, |
| 546 isolate, |
| 547 zone.GetZone()); |
| 546 reader.ReadObject(); | 548 reader.ReadObject(); |
| 547 } | 549 } |
| 548 timer.Stop(); | 550 timer.Stop(); |
| 549 int64_t elapsed_time = timer.TotalElapsedTime(); | 551 int64_t elapsed_time = timer.TotalElapsedTime(); |
| 550 benchmark->set_score(elapsed_time); | 552 benchmark->set_score(elapsed_time); |
| 551 } | 553 } |
| 552 | 554 |
| 553 | 555 |
| 554 BENCHMARK(SerializeSmi) { | 556 BENCHMARK(SerializeSmi) { |
| 555 const Integer& smi_object = Integer::Handle(Smi::New(42)); | 557 const Integer& smi_object = Integer::Handle(Smi::New(42)); |
| 556 const intptr_t kLoopCount = 1000000; | 558 const intptr_t kLoopCount = 1000000; |
| 557 Isolate* isolate = Isolate::Current(); | 559 Isolate* isolate = Isolate::Current(); |
| 558 uint8_t* buffer; | 560 uint8_t* buffer; |
| 559 Timer timer(true, "Serialize Smi"); | 561 Timer timer(true, "Serialize Smi"); |
| 560 timer.Start(); | 562 timer.Start(); |
| 561 for (intptr_t i = 0; i < kLoopCount; i++) { | 563 for (intptr_t i = 0; i < kLoopCount; i++) { |
| 562 StackZone zone(isolate); | 564 StackZone zone(isolate); |
| 563 MessageWriter writer(&buffer, &message_allocator, true); | 565 MessageWriter writer(&buffer, &message_allocator, true); |
| 564 writer.WriteMessage(smi_object); | 566 writer.WriteMessage(smi_object); |
| 565 intptr_t buffer_len = writer.BytesWritten(); | 567 intptr_t buffer_len = writer.BytesWritten(); |
| 566 | 568 |
| 567 // Read object back from the snapshot. | 569 // Read object back from the snapshot. |
| 568 SnapshotReader reader(buffer, buffer_len, Snapshot::kMessage, isolate, | 570 MessageSnapshotReader reader(buffer, |
| 569 zone.GetZone()); | 571 buffer_len, |
| 572 isolate, |
| 573 zone.GetZone()); |
| 570 reader.ReadObject(); | 574 reader.ReadObject(); |
| 571 } | 575 } |
| 572 timer.Stop(); | 576 timer.Stop(); |
| 573 int64_t elapsed_time = timer.TotalElapsedTime(); | 577 int64_t elapsed_time = timer.TotalElapsedTime(); |
| 574 benchmark->set_score(elapsed_time); | 578 benchmark->set_score(elapsed_time); |
| 575 } | 579 } |
| 576 | 580 |
| 577 | 581 |
| 578 BENCHMARK(SimpleMessage) { | 582 BENCHMARK(SimpleMessage) { |
| 579 const Array& array_object = Array::Handle(Array::New(2)); | 583 const Array& array_object = Array::Handle(Array::New(2)); |
| 580 array_object.SetAt(0, Integer::Handle(Smi::New(42))); | 584 array_object.SetAt(0, Integer::Handle(Smi::New(42))); |
| 581 array_object.SetAt(1, Object::Handle()); | 585 array_object.SetAt(1, Object::Handle()); |
| 582 const intptr_t kLoopCount = 1000000; | 586 const intptr_t kLoopCount = 1000000; |
| 583 Isolate* isolate = Isolate::Current(); | 587 Isolate* isolate = Isolate::Current(); |
| 584 uint8_t* buffer; | 588 uint8_t* buffer; |
| 585 Timer timer(true, "Simple Message"); | 589 Timer timer(true, "Simple Message"); |
| 586 timer.Start(); | 590 timer.Start(); |
| 587 for (intptr_t i = 0; i < kLoopCount; i++) { | 591 for (intptr_t i = 0; i < kLoopCount; i++) { |
| 588 StackZone zone(isolate); | 592 StackZone zone(isolate); |
| 589 MessageWriter writer(&buffer, &malloc_allocator, true); | 593 MessageWriter writer(&buffer, &malloc_allocator, true); |
| 590 writer.WriteMessage(array_object); | 594 writer.WriteMessage(array_object); |
| 591 intptr_t buffer_len = writer.BytesWritten(); | 595 intptr_t buffer_len = writer.BytesWritten(); |
| 592 | 596 |
| 593 // Read object back from the snapshot. | 597 // Read object back from the snapshot. |
| 594 SnapshotReader reader(buffer, buffer_len, Snapshot::kMessage, isolate, | 598 MessageSnapshotReader reader(buffer, |
| 595 zone.GetZone()); | 599 buffer_len, |
| 600 isolate, |
| 601 zone.GetZone()); |
| 596 reader.ReadObject(); | 602 reader.ReadObject(); |
| 597 free(buffer); | 603 free(buffer); |
| 598 } | 604 } |
| 599 timer.Stop(); | 605 timer.Stop(); |
| 600 int64_t elapsed_time = timer.TotalElapsedTime(); | 606 int64_t elapsed_time = timer.TotalElapsedTime(); |
| 601 benchmark->set_score(elapsed_time); | 607 benchmark->set_score(elapsed_time); |
| 602 } | 608 } |
| 603 | 609 |
| 604 } // namespace dart | 610 } // namespace dart |
| OLD | NEW |