diff options
author | Ignacio Etcheverry <neikeq@users.noreply.github.com> | 2019-03-04 13:52:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-04 13:52:15 +0100 |
commit | 813d32499a85597aa4ea4191b749fcee7ace3073 (patch) | |
tree | db8a2759a082fd80f8341eb2fb3455513a588f8d | |
parent | d2c57e8431a6dd3a279eec9abdd6acd4ba288ca8 (diff) | |
parent | 839ed2d0924da40c0729f72f6dd425afec41de00 (diff) |
Merge pull request #26513 from cart/mono-log-profiler
Add mono log profiler support
-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 |