2012年2月27日月曜日

Dart VMのコマンド オプション

このエントリーをはてなブックマークに追加
dartコマンドで起動するDart VMには、Dart VMに渡すフラグを指定することができます。dartコマンドの実行時に --print_flags オプションを指定すると、フラグの一覧と、そのフラグの現在の状態を表示することができます。

フラグに値を指定するには、= に続けて値を指定します。例えば --code_heap_size=8 のようになります。真偽値(有効無効)で指定するものについては、true または false を指定します。例えば --enable_type_checks=true のようになります。

真偽値を指定するフラグには、フラグ名の先頭に no_ を付けることで、そのフラグを無効化することもできます。例えば、enable_type_checks フラグを無効化するには、コマンドラインで --no_enable_type_checks と指定します。

おそらくバージョンによって使えるオプションは変わりますが、現時点での最新版(リビジョン4577)のDart VMには次のフラグが用意されています。リストにある値は、オプションを指定しなかった場合のデフォルト値です。
  • verify_implements: false (Verify that all classes implement their interface.)
  • trace_type_finalization: false (Trace type finalization.)
  • trace_class_finalization: false (Trace class finalization.)
  • print_classes: false (Prints details about loaded classes.)
  • trace_bailout: false (Print bailout from new compiler.)
  • use_new_compiler: false (Try to use the new compiler backend.)
  • deoptimization_counter_threshold: 5 (How many times we allow deoptimization before we disallow certain optimizations)
  • trace_compiler: false (Trace compiler operations.)
  • disassemble: false (Disassemble dart code.)
  • print_stack_trace_at_throw: false (Prints a stack trace everytime a throw occurs.)
  • ignore_unrecognized_flags: false (Ignore unrecognized flags.)
  • print_flags: false (Print flags as they are being parsed.)
  • print_flow_graph: false (Print the IR flow graph.)
  • code_heap_size: 8 (code heap size in MB,e.g: --code_heap_size=8 allocates a 8MB old gen heap)
  • old_gen_heap_size: 512 (old gen heap size in MB,e.g: --old_gen_heap_size=1024 allocates a 1024MB old gen heap)
  • new_gen_heap_size: 32 (new gen heap size in MB,e.g: --new_gen_heap_size=64 allocates a 64MB new gen heap)
  • gc_at_alloc: false (GC at every allocation.)
  • verify_after_gc: false (Enables heap verification after GC.)
  • verify_before_gc: false (Enables heap verification before GC.)
  • verbose_gc: false (Enables verbose GC.)
  • trace_isolates: false (Trace isolate creation and shut down.)
  • report_invocation_count: false (Count function invocations and report.)
  • generate_gdb_symbols: false (Generate symbols of generated dart functions for debugging with GDB)
  • trace_optimization: false (Trace optimizations.)
  • silent_warnings: false (Silence warnings.)
  • warning_as_error: false (Treat warnings as errors.)
  • trace_parser: false (Trace parser operations.)
  • enable_type_checks: false (Enable type checks.)
  • enable_asserts: false (Enable assert statements.)
  • trace_resolving: false (Trace resolving.)
  • print_tokens: false (Print scanned tokens.)
  • disassemble_stubs: false (Disassemble generated stubs.)
  • use_slow_path: false (Set to true for debugging & verifying the slow paths.)
  • inline_alloc: true (Inline allocation of objects.)
  • time_all: false (Time all functionality)
  • time_total_runtime: false (time_total_runtime)
  • time_bootstrap: false (time_bootstrap)
  • time_compilation: false (time_compilation)
  • time_isolate_initialization: false (time_isolate_initialization)
  • time_creating_snapshot: false (time_creating_snapshot)
  • time_script_loading: false (time_script_loading)
  • verify_on_transition: false (Verify on dart <==> VM.)
  • print_stop_message: true (Print stop message.)
  • trace_runtime_calls: false (Trace runtime calls.)
  • trace_patching: false (Trace patching of code.)
  • trace_ic: false (trace IC handling)
  • trace_deopt: false (Trace deoptimization)
  • inline_cache: true (enable inline caches)
  • optimization_invocation_threshold: 1000 (Number of invocations before a function is optimized, -1 means never.)
  • print_ic_in_optimized: false (Debugging helper to identify potential performance pitfalls.)
  • trace_functions: false (Trace entry of each function.)
  • print_scopes: false (Print scopes of local variables.)
  • print_ast: false (Print abstract syntax tree.)
  • compiler_stats: false (Compiler stat counters.)
  • intrinsify: true (Instrinsify when possible)
  • trace_natives: false (Trace invocation of natives)
  • print_bootstrap: false (Print the bootstrap source.)
  • trace_type_checks: false (Trace runtime type checks.)
  • trace_intrinsified_natives: false (Report if any of the intrinsified natives are called)
多くのフラグがありますが、ほとんどはあまり使用機会がないものだと思います。よく使われるのは次のフラグでしょう。
  • --enable_type_checks:型チェックを有効にします。
  • --silent_warnings:警告を抑制します。
  • --warning_as_error:警告をエラーとして扱います。
  • --enable_asserts:assertを有効にします。

こちらもどうぞ

0 件のコメント:

コメントを投稿