| 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/file.h" | 7 #include "bin/file.h" |
| 8 | 8 |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 | 10 |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 | 272 |
| 273 | 273 |
| 274 static Dart_NativeFunction NativeResolver(Dart_Handle name, | 274 static Dart_NativeFunction NativeResolver(Dart_Handle name, |
| 275 int arg_count) { | 275 int arg_count) { |
| 276 return &func; | 276 return &func; |
| 277 } | 277 } |
| 278 | 278 |
| 279 | 279 |
| 280 BENCHMARK(Dart2JSCompileAll) { | 280 BENCHMARK(Dart2JSCompileAll) { |
| 281 char* dart_root = ComputeDart2JSPath(Benchmark::Executable()); | 281 char* dart_root = ComputeDart2JSPath(Benchmark::Executable()); |
| 282 Dart_Handle import_map; | 282 char* script = NULL; |
| 283 if (dart_root != NULL) { | 283 if (dart_root != NULL) { |
| 284 import_map = Dart_NewList(2); | 284 const char* kFormatStr ="#import('%s/lib/compiler/compiler.dart');"; |
| 285 Dart_ListSetAt(import_map, 0, Dart_NewString("DART_ROOT")); | 285 intptr_t len = OS::SNPrint(NULL, 0, kFormatStr, dart_root) + 1; |
| 286 Dart_ListSetAt(import_map, 1, Dart_NewString(dart_root)); | 286 script = reinterpret_cast<char*>(malloc(len)); |
| 287 EXPECT(script != NULL); |
| 288 OS::SNPrint(script, len, kFormatStr, dart_root); |
| 289 Dart_Handle lib = TestCase::LoadTestScript( |
| 290 script, |
| 291 reinterpret_cast<Dart_NativeEntryResolver>(NativeResolver)); |
| 292 EXPECT_VALID(lib); |
| 287 } else { | 293 } else { |
| 288 import_map = Dart_NewList(0); | 294 Dart_Handle lib = TestCase::LoadTestScript( |
| 295 "#import('lib/compiler/compiler.dart');", |
| 296 reinterpret_cast<Dart_NativeEntryResolver>(NativeResolver)); |
| 297 EXPECT_VALID(lib); |
| 289 } | 298 } |
| 290 const char* kScriptChars = | |
| 291 "#import('${DART_ROOT}/lib/compiler/compiler.dart');"; | |
| 292 Dart_Handle lib = TestCase::LoadTestScript( | |
| 293 kScriptChars, | |
| 294 reinterpret_cast<Dart_NativeEntryResolver>(NativeResolver), | |
| 295 import_map); | |
| 296 EXPECT_VALID(lib); | |
| 297 Timer timer(true, "Compile all of dart2js benchmark"); | 299 Timer timer(true, "Compile all of dart2js benchmark"); |
| 298 timer.Start(); | 300 timer.Start(); |
| 299 Dart_Handle result = Dart_CompileAll(); | 301 Dart_Handle result = Dart_CompileAll(); |
| 300 EXPECT_VALID(result); | 302 EXPECT_VALID(result); |
| 301 timer.Stop(); | 303 timer.Stop(); |
| 302 int64_t elapsed_time = timer.TotalElapsedTime(); | 304 int64_t elapsed_time = timer.TotalElapsedTime(); |
| 303 benchmark->set_score(elapsed_time); | 305 benchmark->set_score(elapsed_time); |
| 304 free(dart_root); | 306 free(dart_root); |
| 307 free(script); |
| 305 } | 308 } |
| 306 | 309 |
| 307 | 310 |
| 308 // | 311 // |
| 309 // Measure frame lookup during stack traversal. | 312 // Measure frame lookup during stack traversal. |
| 310 // | 313 // |
| 311 static void StackFrame_accessFrame(Dart_NativeArguments args) { | 314 static void StackFrame_accessFrame(Dart_NativeArguments args) { |
| 312 const int kNumIterations = 100; | 315 const int kNumIterations = 100; |
| 313 Dart_EnterScope(); | 316 Dart_EnterScope(); |
| 314 Code& code = Code::Handle(); | 317 Code& code = Code::Handle(); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 387 Dart_Handle cls = Dart_GetClass(lib, Dart_NewString("StackFrameTest")); | 390 Dart_Handle cls = Dart_GetClass(lib, Dart_NewString("StackFrameTest")); |
| 388 Dart_Handle result = Dart_Invoke(cls, Dart_NewString("testMain"), 0, NULL); | 391 Dart_Handle result = Dart_Invoke(cls, Dart_NewString("testMain"), 0, NULL); |
| 389 EXPECT_VALID(result); | 392 EXPECT_VALID(result); |
| 390 int64_t elapsed_time = 0; | 393 int64_t elapsed_time = 0; |
| 391 result = Dart_IntegerToInt64(result, &elapsed_time); | 394 result = Dart_IntegerToInt64(result, &elapsed_time); |
| 392 EXPECT_VALID(result); | 395 EXPECT_VALID(result); |
| 393 benchmark->set_score(elapsed_time); | 396 benchmark->set_score(elapsed_time); |
| 394 } | 397 } |
| 395 | 398 |
| 396 } // namespace dart | 399 } // namespace dart |
| OLD | NEW |