[Debugger] Move most profilers to ServersDebugger.
Also splits bandwidth/rpc profiler (RPCProfiler is now in SceneDebugger).
This commit is contained in:
parent
789e648f4d
commit
87f4bbd668
19 changed files with 780 additions and 644 deletions
|
|
@ -56,7 +56,7 @@ void EditorNetworkProfiler::_update_frame() {
|
|||
|
||||
TreeItem *root = counters_display->create_item();
|
||||
|
||||
for (const KeyValue<ObjectID, DebuggerMarshalls::MultiplayerNodeInfo> &E : nodes_data) {
|
||||
for (const KeyValue<ObjectID, SceneDebugger::RPCNodeInfo> &E : nodes_data) {
|
||||
TreeItem *node = counters_display->create_item(root);
|
||||
|
||||
for (int j = 0; j < counters_display->get_columns(); ++j) {
|
||||
|
|
@ -65,9 +65,7 @@ void EditorNetworkProfiler::_update_frame() {
|
|||
|
||||
node->set_text(0, E.value.node_path);
|
||||
node->set_text(1, E.value.incoming_rpc == 0 ? "-" : itos(E.value.incoming_rpc));
|
||||
node->set_text(2, E.value.incoming_rset == 0 ? "-" : itos(E.value.incoming_rset));
|
||||
node->set_text(3, E.value.outgoing_rpc == 0 ? "-" : itos(E.value.outgoing_rpc));
|
||||
node->set_text(4, E.value.outgoing_rset == 0 ? "-" : itos(E.value.outgoing_rset));
|
||||
node->set_text(2, E.value.outgoing_rpc == 0 ? "-" : itos(E.value.outgoing_rpc));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -91,14 +89,12 @@ void EditorNetworkProfiler::_clear_pressed() {
|
|||
}
|
||||
}
|
||||
|
||||
void EditorNetworkProfiler::add_node_frame_data(const DebuggerMarshalls::MultiplayerNodeInfo p_frame) {
|
||||
void EditorNetworkProfiler::add_node_frame_data(const SceneDebugger::RPCNodeInfo p_frame) {
|
||||
if (!nodes_data.has(p_frame.node)) {
|
||||
nodes_data.insert(p_frame.node, p_frame);
|
||||
} else {
|
||||
nodes_data[p_frame.node].incoming_rpc += p_frame.incoming_rpc;
|
||||
nodes_data[p_frame.node].incoming_rset += p_frame.incoming_rset;
|
||||
nodes_data[p_frame.node].outgoing_rpc += p_frame.outgoing_rpc;
|
||||
nodes_data[p_frame.node].outgoing_rset += p_frame.outgoing_rset;
|
||||
}
|
||||
|
||||
if (frame_delay->is_stopped()) {
|
||||
|
|
@ -174,7 +170,7 @@ EditorNetworkProfiler::EditorNetworkProfiler() {
|
|||
counters_display->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||
counters_display->set_hide_folding(true);
|
||||
counters_display->set_hide_root(true);
|
||||
counters_display->set_columns(5);
|
||||
counters_display->set_columns(3);
|
||||
counters_display->set_column_titles_visible(true);
|
||||
counters_display->set_column_title(0, TTR("Node"));
|
||||
counters_display->set_column_expand(0, true);
|
||||
|
|
@ -184,18 +180,10 @@ EditorNetworkProfiler::EditorNetworkProfiler() {
|
|||
counters_display->set_column_expand(1, false);
|
||||
counters_display->set_column_clip_content(1, true);
|
||||
counters_display->set_column_custom_minimum_width(1, 120 * EDSCALE);
|
||||
counters_display->set_column_title(2, TTR("Incoming RSET"));
|
||||
counters_display->set_column_title(2, TTR("Outgoing RPC"));
|
||||
counters_display->set_column_expand(2, false);
|
||||
counters_display->set_column_clip_content(2, true);
|
||||
counters_display->set_column_custom_minimum_width(2, 120 * EDSCALE);
|
||||
counters_display->set_column_title(3, TTR("Outgoing RPC"));
|
||||
counters_display->set_column_expand(3, false);
|
||||
counters_display->set_column_clip_content(3, true);
|
||||
counters_display->set_column_custom_minimum_width(3, 120 * EDSCALE);
|
||||
counters_display->set_column_title(4, TTR("Outgoing RSET"));
|
||||
counters_display->set_column_expand(4, false);
|
||||
counters_display->set_column_clip_content(4, true);
|
||||
counters_display->set_column_custom_minimum_width(4, 120 * EDSCALE);
|
||||
add_child(counters_display);
|
||||
|
||||
frame_delay = memnew(Timer);
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
#ifndef EDITORNETWORKPROFILER_H
|
||||
#define EDITORNETWORKPROFILER_H
|
||||
|
||||
#include "core/debugger/debugger_marshalls.h"
|
||||
#include "scene/debugger/scene_debugger.h"
|
||||
#include "scene/gui/box_container.h"
|
||||
#include "scene/gui/button.h"
|
||||
#include "scene/gui/label.h"
|
||||
|
|
@ -50,7 +50,7 @@ private:
|
|||
|
||||
Timer *frame_delay;
|
||||
|
||||
Map<ObjectID, DebuggerMarshalls::MultiplayerNodeInfo> nodes_data;
|
||||
Map<ObjectID, SceneDebugger::RPCNodeInfo> nodes_data;
|
||||
|
||||
void _update_frame();
|
||||
|
||||
|
|
@ -62,7 +62,7 @@ protected:
|
|||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
void add_node_frame_data(const DebuggerMarshalls::MultiplayerNodeInfo p_frame);
|
||||
void add_node_frame_data(const SceneDebugger::RPCNodeInfo p_frame);
|
||||
void set_bandwidth(int p_incoming, int p_outgoing);
|
||||
bool is_profiling();
|
||||
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@
|
|||
#include "scene/gui/texture_button.h"
|
||||
#include "scene/gui/tree.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
#include "servers/debugger/servers_debugger.h"
|
||||
#include "servers/display_server.h"
|
||||
|
||||
using CameraOverride = EditorDebuggerNode::CameraOverride;
|
||||
|
|
@ -278,7 +279,7 @@ void ScriptEditorDebugger::_remote_object_property_updated(ObjectID p_id, const
|
|||
}
|
||||
|
||||
void ScriptEditorDebugger::_video_mem_request() {
|
||||
_put_msg("core:memory", Array());
|
||||
_put_msg("servers:memory", Array());
|
||||
}
|
||||
|
||||
void ScriptEditorDebugger::_video_mem_export() {
|
||||
|
|
@ -344,15 +345,15 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
|
|||
if (id.is_valid()) {
|
||||
emit_signal(SNAME("remote_object_updated"), id);
|
||||
}
|
||||
} else if (p_msg == "memory:usage") {
|
||||
} else if (p_msg == "servers:memory_usage") {
|
||||
vmem_tree->clear();
|
||||
TreeItem *root = vmem_tree->create_item();
|
||||
DebuggerMarshalls::ResourceUsage usage;
|
||||
ServersDebugger::ResourceUsage usage;
|
||||
usage.deserialize(p_data);
|
||||
|
||||
uint64_t total = 0;
|
||||
|
||||
for (const DebuggerMarshalls::ResourceInfo &E : usage.infos) {
|
||||
for (const ServersDebugger::ResourceInfo &E : usage.infos) {
|
||||
TreeItem *it = vmem_tree->create_item(root);
|
||||
String type = E.type;
|
||||
int bytes = E.vram;
|
||||
|
|
@ -445,7 +446,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
|
|||
performance_profiler->add_profile_frame(frame_data);
|
||||
|
||||
} else if (p_msg == "visual:profile_frame") {
|
||||
DebuggerMarshalls::VisualProfilerFrame frame;
|
||||
ServersDebugger::VisualProfilerFrame frame;
|
||||
frame.deserialize(p_data);
|
||||
|
||||
EditorVisualProfiler::Metric metric;
|
||||
|
|
@ -592,13 +593,13 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
|
|||
|
||||
} else if (p_msg == "servers:function_signature") {
|
||||
// Cache a profiler signature.
|
||||
DebuggerMarshalls::ScriptFunctionSignature sig;
|
||||
ServersDebugger::ScriptFunctionSignature sig;
|
||||
sig.deserialize(p_data);
|
||||
profiler_signature[sig.id] = sig.name;
|
||||
|
||||
} else if (p_msg == "servers:profile_frame" || p_msg == "servers:profile_total") {
|
||||
EditorProfiler::Metric metric;
|
||||
DebuggerMarshalls::ServersProfilerFrame frame;
|
||||
ServersDebugger::ServersProfilerFrame frame;
|
||||
frame.deserialize(p_data);
|
||||
metric.valid = true;
|
||||
metric.frame_number = frame.frame_number;
|
||||
|
|
@ -642,7 +643,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
|
|||
}
|
||||
|
||||
for (int i = 0; i < frame.servers.size(); i++) {
|
||||
const DebuggerMarshalls::ServerInfo &srv = frame.servers[i];
|
||||
const ServersDebugger::ServerInfo &srv = frame.servers[i];
|
||||
EditorProfiler::Metric::Category c;
|
||||
const String name = srv.name;
|
||||
c.name = name.capitalize();
|
||||
|
|
@ -709,14 +710,14 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
|
|||
profiler->add_frame_metric(metric, true);
|
||||
}
|
||||
|
||||
} else if (p_msg == "network:profile_frame") {
|
||||
DebuggerMarshalls::NetworkProfilerFrame frame;
|
||||
} else if (p_msg == "multiplayer:rpc") {
|
||||
SceneDebugger::RPCProfilerFrame frame;
|
||||
frame.deserialize(p_data);
|
||||
for (int i = 0; i < frame.infos.size(); i++) {
|
||||
network_profiler->add_node_frame_data(frame.infos[i]);
|
||||
}
|
||||
|
||||
} else if (p_msg == "network:bandwidth") {
|
||||
} else if (p_msg == "multiplayer:bandwidth") {
|
||||
ERR_FAIL_COND(p_data.size() < 2);
|
||||
network_profiler->set_bandwidth(p_data[0], p_data[1]);
|
||||
|
||||
|
|
@ -971,7 +972,8 @@ void ScriptEditorDebugger::_profiler_activate(bool p_enable, int p_type) {
|
|||
data.push_back(p_enable);
|
||||
switch (p_type) {
|
||||
case PROFILER_NETWORK:
|
||||
_put_msg("profiler:network", data);
|
||||
_put_msg("profiler:multiplayer", data);
|
||||
_put_msg("profiler:rpc", data);
|
||||
break;
|
||||
case PROFILER_VISUAL:
|
||||
_put_msg("profiler:visual", data);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue