Networking statistics, disable resource unload
This commit is contained in:
parent
05304f9461
commit
5a5d78ac27
@ -89,11 +89,6 @@ namespace RageCoop.Client
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
private ulong _lastDebugData;
|
|
||||||
private int _debugBytesSent;
|
|
||||||
private int _debugBytesReceived;
|
|
||||||
private int _lastBytesSent;
|
|
||||||
public int _lastBytesReceived;
|
|
||||||
#endif
|
#endif
|
||||||
private void OnTick(object sender, EventArgs e)
|
private void OnTick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@ -136,21 +131,10 @@ namespace RageCoop.Client
|
|||||||
#if DEBUG
|
#if DEBUG
|
||||||
if (Networking.ShowNetworkInfo)
|
if (Networking.ShowNetworkInfo)
|
||||||
{
|
{
|
||||||
ulong time = Util.GetTickCount64();
|
|
||||||
if (time - _lastDebugData > 1000)
|
|
||||||
{
|
|
||||||
_lastDebugData = time;
|
|
||||||
|
|
||||||
_debugBytesReceived = Networking.Client.Statistics.ReceivedBytes-_lastBytesReceived;
|
|
||||||
_lastBytesReceived=Networking.Client.Statistics.ReceivedBytes;
|
|
||||||
|
|
||||||
_debugBytesSent = Networking.Client.Statistics.SentBytes-_lastBytesSent;
|
|
||||||
_lastBytesSent=Networking.Client.Statistics.SentBytes;
|
|
||||||
}
|
|
||||||
|
|
||||||
new LemonUI.Elements.ScaledText(new PointF(Screen.PrimaryScreen.Bounds.Width / 2, 0), $"L: {Networking.Latency * 1000:N0}ms", 0.5f) { Alignment = GTA.UI.Alignment.Center }.Draw();
|
new LemonUI.Elements.ScaledText(new PointF(Screen.PrimaryScreen.Bounds.Width / 2, 0), $"L: {Networking.Latency * 1000:N0}ms", 0.5f) { Alignment = GTA.UI.Alignment.Center }.Draw();
|
||||||
new LemonUI.Elements.ScaledText(new PointF(Screen.PrimaryScreen.Bounds.Width / 2, 30), $"R: {Lidgren.Network.NetUtility.ToHumanReadable(_debugBytesReceived)}/s", 0.5f) { Alignment = GTA.UI.Alignment.Center }.Draw();
|
new LemonUI.Elements.ScaledText(new PointF(Screen.PrimaryScreen.Bounds.Width / 2, 30), $"R: {Lidgren.Network.NetUtility.ToHumanReadable(Statistics.BytesDownPerSecond)}/s", 0.5f) { Alignment = GTA.UI.Alignment.Center }.Draw();
|
||||||
new LemonUI.Elements.ScaledText(new PointF(Screen.PrimaryScreen.Bounds.Width / 2, 60), $"S: {Lidgren.Network.NetUtility.ToHumanReadable(_debugBytesSent)}/s", 0.5f) { Alignment = GTA.UI.Alignment.Center }.Draw();
|
new LemonUI.Elements.ScaledText(new PointF(Screen.PrimaryScreen.Bounds.Width / 2, 60), $"S: {Lidgren.Network.NetUtility.ToHumanReadable(Statistics.BytesUpPerSecond)}/s", 0.5f) { Alignment = GTA.UI.Alignment.Center }.Draw();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
29
RageCoop.Client/Networking/Statistics.cs
Normal file
29
RageCoop.Client/Networking/Statistics.cs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace RageCoop.Client
|
||||||
|
{
|
||||||
|
internal static class Statistics
|
||||||
|
{
|
||||||
|
public static int BytesDownPerSecond{ get; private set; }
|
||||||
|
public static int BytesUpPerSecond { get; private set; }
|
||||||
|
static Statistics()
|
||||||
|
{
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
var bu=Networking.Client.Statistics.SentBytes;
|
||||||
|
var bd = Networking.Client.Statistics.ReceivedBytes;
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
BytesUpPerSecond=Networking.Client.Statistics.SentBytes-bu;
|
||||||
|
BytesDownPerSecond=Networking.Client.Statistics.ReceivedBytes-bd;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -261,7 +261,7 @@ namespace RageCoop.Server.Scripting
|
|||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Send an event and data to the specified clients. Use <see cref="Client.SendCustomEvent(int, List{object})"/> if you want to send event to individual client.
|
/// Send an event and data to the specified clients. Use <see cref="Client.SendCustomEvent(int,object[])"/> if you want to send event to individual client.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="eventHash">An unique identifier of the event, you can use <see cref="CustomEvents.Hash(string)"/> to get it from a string</param>
|
/// <param name="eventHash">An unique identifier of the event, you can use <see cref="CustomEvents.Hash(string)"/> to get it from a string</param>
|
||||||
/// <param name="args">The objects conataing your data, see <see cref="Scripting.CustomEventReceivedArgs.Args"/> for supported types.</param>
|
/// <param name="args">The objects conataing your data, see <see cref="Scripting.CustomEventReceivedArgs.Args"/> for supported types.</param>
|
||||||
|
@ -29,8 +29,8 @@ namespace RageCoop.Server.Scripting
|
|||||||
var conf = new PluginConfig(Path.GetFullPath(Path.Combine(resDir, Path.GetFileName(resDir)+".dll")))
|
var conf = new PluginConfig(Path.GetFullPath(Path.Combine(resDir, Path.GetFileName(resDir)+".dll")))
|
||||||
{
|
{
|
||||||
PreferSharedTypes = true,
|
PreferSharedTypes = true,
|
||||||
EnableHotReload=!isTemp,
|
EnableHotReload=false,
|
||||||
IsUnloadable=true,
|
IsUnloadable=false,
|
||||||
LoadInMemory=true,
|
LoadInMemory=true,
|
||||||
};
|
};
|
||||||
ServerResource r = new(conf);
|
ServerResource r = new(conf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user