| Index: runtime/vm/compiler_stats.cc
|
| diff --git a/runtime/vm/compiler_stats.cc b/runtime/vm/compiler_stats.cc
|
| index 49be30ecd266ff8d4cc7cf8875d8471249382900..d3e4b02689e40d69ecb9a534b0d27ada4160ccbd 100644
|
| --- a/runtime/vm/compiler_stats.cc
|
| +++ b/runtime/vm/compiler_stats.cc
|
| @@ -137,6 +137,9 @@ char* CompilerStats::BenchmarkOutput() {
|
| Update();
|
| Log log(PrintToStats);
|
| LogBlock lb(Thread::Current(), &log);
|
| + log.Print("==== Compiler Stats for isolate '%s' ====\n",
|
| + isolate_->debugger_name());
|
| +
|
| log.Print("NumberOfTokens: %" Pd64 "\n", num_tokens_total);
|
| log.Print("NumClassesParsed: %" Pd64 "\n", num_classes_parsed);
|
| log.Print("NumFunctionsCompiled: %" Pd64 "\n", num_functions_compiled);
|
| @@ -161,16 +164,18 @@ char* CompilerStats::BenchmarkOutput() {
|
|
|
| // Compiler stats.
|
| int64_t codegen_usecs = codegen_timer.TotalElapsedTime();
|
| - int64_t compile_usecs = scan_usecs+ parse_usecs + codegen_usecs;
|
| + int64_t compile_usecs = scan_usecs + parse_usecs + codegen_usecs;
|
| + int64_t compile_speed =
|
| + compile_usecs > 0 ? (1000 * num_func_tokens_compiled / compile_usecs) : 0;
|
| log.Print("NumTokensCompiled: %" Pd64 " tokens\n", num_func_tokens_compiled);
|
| log.Print("CompilerTime: %" Pd64 " ms\n", compile_usecs / 1000);
|
|
|
| - log.Print("CompilerSpeed: %" Pd64 " tokens/ms\n",
|
| - compile_usecs > 0 ?
|
| - (1000 * num_func_tokens_compiled / compile_usecs) : 0);
|
| + log.Print("CompilerSpeed: %" Pd64 " tokens/ms\n", compile_speed);
|
| log.Print("CodeSize: %" Pd64 " KB\n", total_code_size / 1024);
|
| - log.Print("CodeDensity: %" Pd64 " tokens/KB\n",
|
| - (1024 * num_func_tokens_compiled) / total_instr_size);
|
| + int64_t code_density = total_instr_size > 0 ?
|
| + (num_func_tokens_compiled * 1024) / total_instr_size : 0;
|
| +
|
| + log.Print("CodeDensity: %" Pd64 " tokens/KB\n", code_density);
|
| log.Print("InstrSize: %" Pd64 " KB\n", total_instr_size / 1024);
|
| log.Flush();
|
| char* benchmark_text = text;
|
| @@ -225,8 +230,7 @@ char* CompilerStats::PrintToZone() {
|
| int64_t codegen_usecs = codegen_timer.TotalElapsedTime();
|
|
|
| log.Print("==== Backend stats:\n");
|
| - log.Print("Code gen. time: %" Pd64 " ms\n",
|
| - codegen_usecs / 1000);
|
| + log.Print("Code gen. time: %" Pd64 " ms\n", codegen_usecs / 1000);
|
| int64_t graphbuilder_usecs = graphbuilder_timer.TotalElapsedTime();
|
| log.Print(" Graph builder: %" Pd64 " ms\n",
|
| graphbuilder_usecs / 1000);
|
| @@ -266,15 +270,17 @@ char* CompilerStats::PrintToZone() {
|
|
|
| log.Print("==== Compiled code stats:\n");
|
| int64_t compile_usecs = scan_usecs + parse_usecs + codegen_usecs;
|
| + int64_t compile_speed = compile_usecs > 0 ?
|
| + (1000 * num_func_tokens_compiled / compile_usecs) : 0;
|
| log.Print("Functions parsed: %" Pd64 "\n", num_functions_parsed);
|
| log.Print("Functions compiled: %" Pd64 "\n", num_functions_compiled);
|
| log.Print(" optimized: %" Pd64 "\n", num_functions_optimized);
|
| log.Print("Compiler time: %" Pd64 " ms\n", compile_usecs / 1000);
|
| log.Print("Tokens compiled: %" Pd64 "\n", num_func_tokens_compiled);
|
| - log.Print("Compilation speed: %" Pd64 " tokens/ms\n",
|
| - (1000 * num_func_tokens_compiled) / compile_usecs);
|
| - log.Print("Code density: %" Pd64 " tokens per KB\n",
|
| - (num_func_tokens_compiled * 1024) / total_instr_size);
|
| + log.Print("Compilation speed: %" Pd64 " tokens/ms\n", compile_speed);
|
| + int64_t code_density = total_instr_size > 0 ?
|
| + (num_func_tokens_compiled * 1024) / total_instr_size : 0;
|
| + log.Print("Code density: %" Pd64 " tokens per KB\n", code_density);
|
| log.Print("Code size: %" Pd64 " KB\n", total_code_size / 1024);
|
| log.Print(" Instr size: %" Pd64 " KB\n",
|
| total_instr_size / 1024);
|
|
|