Make the performance reporting update frequency customizable
The default update frequency has been changed from 1000ms to 250ms.
This commit is contained in:
parent
942e0c4832
commit
228ae60a63
|
@ -1071,6 +1071,7 @@ ProjectSettings::ProjectSettings() {
|
||||||
GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_mode", 2);
|
GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_mode", 2);
|
||||||
|
|
||||||
GLOBAL_DEF("debug/settings/profiler/max_functions", 16384);
|
GLOBAL_DEF("debug/settings/profiler/max_functions", 16384);
|
||||||
|
GLOBAL_DEF("debug/settings/performance/update_frequency_msec", 250);
|
||||||
|
|
||||||
//assigning here, because using GLOBAL_GET on every block for compressing can be slow
|
//assigning here, because using GLOBAL_GET on every block for compressing can be slow
|
||||||
Compression::zstd_long_distance_matching = GLOBAL_DEF("compression/formats/zstd/long_distance_matching", false);
|
Compression::zstd_long_distance_matching = GLOBAL_DEF("compression/formats/zstd/long_distance_matching", false);
|
||||||
|
|
|
@ -854,7 +854,7 @@ void ScriptDebuggerRemote::idle_poll() {
|
||||||
if (performance) {
|
if (performance) {
|
||||||
|
|
||||||
uint64_t pt = OS::get_singleton()->get_ticks_msec();
|
uint64_t pt = OS::get_singleton()->get_ticks_msec();
|
||||||
if (pt - last_perf_time > 1000) {
|
if (pt - last_perf_time > update_frequency) {
|
||||||
|
|
||||||
last_perf_time = pt;
|
last_perf_time = pt;
|
||||||
int max = performance->get("MONITOR_MAX");
|
int max = performance->get("MONITOR_MAX");
|
||||||
|
@ -1081,7 +1081,7 @@ ScriptDebuggerRemote::ScriptDebuggerRemote() :
|
||||||
eh.userdata = this;
|
eh.userdata = this;
|
||||||
add_error_handler(&eh);
|
add_error_handler(&eh);
|
||||||
|
|
||||||
profile_info.resize(CLAMP(int(ProjectSettings::get_singleton()->get("debug/settings/profiler/max_functions")), 128, 65535));
|
profile_info.resize(CLAMP(int(GLOBAL_GET("debug/settings/profiler/max_functions")), 128, 65535));
|
||||||
profile_info_ptrs.resize(profile_info.size());
|
profile_info_ptrs.resize(profile_info.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
#include "script_language.h"
|
#include "script_language.h"
|
||||||
|
#include "project_settings.h"
|
||||||
|
|
||||||
ScriptLanguage *ScriptServer::_languages[MAX_LANGUAGES];
|
ScriptLanguage *ScriptServer::_languages[MAX_LANGUAGES];
|
||||||
int ScriptServer::_language_count = 0;
|
int ScriptServer::_language_count = 0;
|
||||||
|
@ -283,6 +284,7 @@ ScriptDebugger::ScriptDebugger() {
|
||||||
lines_left = -1;
|
lines_left = -1;
|
||||||
depth = -1;
|
depth = -1;
|
||||||
break_lang = NULL;
|
break_lang = NULL;
|
||||||
|
update_frequency = GLOBAL_GET("debug/settings/performance/update_frequency_msec");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PlaceHolderScriptInstance::set(const StringName &p_name, const Variant &p_value) {
|
bool PlaceHolderScriptInstance::set(const StringName &p_name, const Variant &p_value) {
|
||||||
|
|
|
@ -352,6 +352,8 @@ class ScriptDebugger {
|
||||||
public:
|
public:
|
||||||
typedef void (*RequestSceneTreeMessageFunc)(void *);
|
typedef void (*RequestSceneTreeMessageFunc)(void *);
|
||||||
|
|
||||||
|
int update_frequency;
|
||||||
|
|
||||||
struct LiveEditFuncs {
|
struct LiveEditFuncs {
|
||||||
|
|
||||||
void *udata;
|
void *udata;
|
||||||
|
|
|
@ -1729,7 +1729,7 @@ bool Main::start() {
|
||||||
|
|
||||||
uint64_t Main::last_ticks = 0;
|
uint64_t Main::last_ticks = 0;
|
||||||
uint64_t Main::target_ticks = 0;
|
uint64_t Main::target_ticks = 0;
|
||||||
uint32_t Main::frames = 0;
|
Array Main::frame_times = Array();
|
||||||
uint32_t Main::frame = 0;
|
uint32_t Main::frame = 0;
|
||||||
bool Main::force_redraw_requested = false;
|
bool Main::force_redraw_requested = false;
|
||||||
|
|
||||||
|
@ -1848,10 +1848,19 @@ bool Main::iteration() {
|
||||||
script_debugger->idle_poll();
|
script_debugger->idle_poll();
|
||||||
}
|
}
|
||||||
|
|
||||||
frames++;
|
|
||||||
Engine::get_singleton()->_idle_frames++;
|
Engine::get_singleton()->_idle_frames++;
|
||||||
|
|
||||||
if (frame > 1000000) {
|
// FPS counter
|
||||||
|
frame_times.push_back(ticks);
|
||||||
|
int frames = frame_times.size();
|
||||||
|
|
||||||
|
while (frame_times.size() > 0 && (int)frame_times.get(0) <= ticks - 1000000) {
|
||||||
|
frame_times.pop_front();
|
||||||
|
}
|
||||||
|
|
||||||
|
int update_frequency = MAX(1, (int)GLOBAL_GET("debug/settings/performance/update_frequency_msec"));
|
||||||
|
|
||||||
|
if (frame > update_frequency * 1000) {
|
||||||
|
|
||||||
if (editor || project_manager) {
|
if (editor || project_manager) {
|
||||||
if (print_fps) {
|
if (print_fps) {
|
||||||
|
@ -1867,8 +1876,7 @@ bool Main::iteration() {
|
||||||
idle_process_max = 0;
|
idle_process_max = 0;
|
||||||
physics_process_max = 0;
|
physics_process_max = 0;
|
||||||
|
|
||||||
frame %= 1000000;
|
frame %= update_frequency * 1000;
|
||||||
frames = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fixed_fps != -1)
|
if (fixed_fps != -1)
|
||||||
|
|
|
@ -44,7 +44,7 @@ class Main {
|
||||||
static void print_help(const char *p_binary);
|
static void print_help(const char *p_binary);
|
||||||
static uint64_t last_ticks;
|
static uint64_t last_ticks;
|
||||||
static uint64_t target_ticks;
|
static uint64_t target_ticks;
|
||||||
static uint32_t frames;
|
static Array frame_times;
|
||||||
static uint32_t frame;
|
static uint32_t frame;
|
||||||
static bool force_redraw_requested;
|
static bool force_redraw_requested;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue