| 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/file.h" | 8 #include "bin/file.h" |
| 8 | 9 |
| 9 #include "platform/assert.h" | 10 #include "platform/assert.h" |
| 10 | 11 |
| 11 #include "vm/dart_api_impl.h" | 12 #include "vm/dart_api_impl.h" |
| 12 #include "vm/stack_frame.h" | 13 #include "vm/stack_frame.h" |
| 13 #include "vm/unit_test.h" | 14 #include "vm/unit_test.h" |
| 14 | 15 |
| 15 using dart::bin::File; | 16 using dart::bin::File; |
| 16 | 17 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 27 benchmark->RunBenchmark(); | 28 benchmark->RunBenchmark(); |
| 28 benchmark = benchmark->next_; | 29 benchmark = benchmark->next_; |
| 29 } | 30 } |
| 30 } | 31 } |
| 31 | 32 |
| 32 | 33 |
| 33 // | 34 // |
| 34 // Measure compile of all functions in dart core lib classes. | 35 // Measure compile of all functions in dart core lib classes. |
| 35 // | 36 // |
| 36 BENCHMARK(CorelibCompileAll) { | 37 BENCHMARK(CorelibCompileAll) { |
| 38 bin::Builtin::SetNativeResolver(bin::Builtin::kBuiltinLibrary); |
| 39 bin::Builtin::SetNativeResolver(bin::Builtin::kIOLibrary); |
| 37 Timer timer(true, "Compile all of Core lib benchmark"); | 40 Timer timer(true, "Compile all of Core lib benchmark"); |
| 38 timer.Start(); | 41 timer.Start(); |
| 39 const Error& error = Error::Handle(benchmark->isolate(), | 42 const Error& error = Error::Handle(benchmark->isolate(), |
| 40 Library::CompileAll()); | 43 Library::CompileAll()); |
| 41 if (!error.IsNull()) { | 44 if (!error.IsNull()) { |
| 42 OS::PrintErr("Unexpected error in CorelibCompileAll benchmark:\n%s", | 45 OS::PrintErr("Unexpected error in CorelibCompileAll benchmark:\n%s", |
| 43 error.ToErrorCString()); | 46 error.ToErrorCString()); |
| 44 } | 47 } |
| 45 EXPECT(error.IsNull()); | 48 EXPECT(error.IsNull()); |
| 46 timer.Stop(); | 49 timer.Stop(); |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 } | 261 } |
| 259 | 262 |
| 260 | 263 |
| 261 static Dart_NativeFunction NativeResolver(Dart_Handle name, | 264 static Dart_NativeFunction NativeResolver(Dart_Handle name, |
| 262 int arg_count) { | 265 int arg_count) { |
| 263 return &func; | 266 return &func; |
| 264 } | 267 } |
| 265 | 268 |
| 266 | 269 |
| 267 BENCHMARK(Dart2JSCompileAll) { | 270 BENCHMARK(Dart2JSCompileAll) { |
| 271 bin::Builtin::SetNativeResolver(bin::Builtin::kBuiltinLibrary); |
| 272 bin::Builtin::SetNativeResolver(bin::Builtin::kIOLibrary); |
| 268 char* dart_root = ComputeDart2JSPath(Benchmark::Executable()); | 273 char* dart_root = ComputeDart2JSPath(Benchmark::Executable()); |
| 269 char* script = NULL; | 274 char* script = NULL; |
| 270 if (dart_root != NULL) { | 275 if (dart_root != NULL) { |
| 271 Isolate* isolate = Isolate::Current(); | 276 Isolate* isolate = Isolate::Current(); |
| 272 HANDLESCOPE(isolate); | 277 HANDLESCOPE(isolate); |
| 273 const char* kFormatStr = | 278 const char* kFormatStr = |
| 274 "import '%s/sdk/lib/_internal/compiler/compiler.dart';"; | 279 "import '%s/sdk/lib/_internal/compiler/compiler.dart';"; |
| 275 intptr_t len = OS::SNPrint(NULL, 0, kFormatStr, dart_root) + 1; | 280 intptr_t len = OS::SNPrint(NULL, 0, kFormatStr, dart_root) + 1; |
| 276 script = reinterpret_cast<char*>(malloc(len)); | 281 script = reinterpret_cast<char*>(malloc(len)); |
| 277 EXPECT(script != NULL); | 282 EXPECT(script != NULL); |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 444 | 449 |
| 445 // Write snapshot with object content. | 450 // Write snapshot with object content. |
| 446 FullSnapshotWriter writer(&buffer, &malloc_allocator); | 451 FullSnapshotWriter writer(&buffer, &malloc_allocator); |
| 447 writer.WriteFullSnapshot(); | 452 writer.WriteFullSnapshot(); |
| 448 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); | 453 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); |
| 449 ASSERT(snapshot->kind() == Snapshot::kFull); | 454 ASSERT(snapshot->kind() == Snapshot::kFull); |
| 450 benchmark->set_score(snapshot->length()); | 455 benchmark->set_score(snapshot->length()); |
| 451 } | 456 } |
| 452 | 457 |
| 453 } // namespace dart | 458 } // namespace dart |
| OLD | NEW |