diff options
author | Carter Anderson <mcanders1@gmail.com> | 2019-03-02 16:57:35 -0800 |
---|---|---|
committer | Carter Anderson <mcanders1@gmail.com> | 2019-03-02 23:32:03 -0800 |
commit | 839ed2d0924da40c0729f72f6dd425afec41de00 (patch) | |
tree | 8bac44f0fe5ab4a3459669bd83c51f2c471ff0a0 /modules | |
parent | bf6398ae242cbaf90ff792d709d4727c8adc31ca (diff) |
Add mono log profiler support
Diffstat (limited to 'modules')
-rw-r--r-- | modules/mono/mono_gd/gd_mono.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp index dfabfddd64..b946969b02 100644 --- a/modules/mono/mono_gd/gd_mono.cpp +++ b/modules/mono/mono_gd/gd_mono.cpp @@ -34,6 +34,7 @@ #include <mono/metadata/mono-config.h> #include <mono/metadata/mono-debug.h> #include <mono/metadata/mono-gc.h> +#include <mono/metadata/profiler.h> #include "core/os/dir_access.h" #include "core/os/file_access.h" @@ -79,6 +80,14 @@ void setup_runtime_main_args() { mono_runtime_set_main_args(main_args.size(), main_args.ptrw()); } +void gdmono_profiler_init() { + String profiler_args = GLOBAL_DEF("mono/profiler/args", "log:calls,alloc,sample,output=output.mlpd"); + bool profiler_enabled = GLOBAL_DEF("mono/profiler/enabled", false); + if (profiler_enabled) { + mono_profiler_load(profiler_args.utf8()); + } +} + #ifdef DEBUG_ENABLED static bool _wait_for_debugger_msecs(uint32_t p_msecs) { @@ -265,6 +274,8 @@ void GDMono::initialize() { GDMonoAssembly::initialize(); + gdmono_profiler_init(); + #ifdef DEBUG_ENABLED gdmono_debug_init(); #endif |