Update RaiseEventBenchmark for engine changes (#37349)
* Update RaiseEventBenchmark * fix test * poke_tests
This commit is contained in:
@@ -23,6 +23,8 @@ public class RaiseEventBenchmark
|
|||||||
PoolManager.Startup(typeof(BenchSystem).Assembly);
|
PoolManager.Startup(typeof(BenchSystem).Assembly);
|
||||||
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
|
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
|
||||||
var entMan = _pair.Server.EntMan;
|
var entMan = _pair.Server.EntMan;
|
||||||
|
var fact = _pair.Server.ResolveDependency<IComponentFactory>();
|
||||||
|
var bus = (EntityEventBus)entMan.EventBus;
|
||||||
_sys = entMan.System<BenchSystem>();
|
_sys = entMan.System<BenchSystem>();
|
||||||
|
|
||||||
_pair.Server.WaitPost(() =>
|
_pair.Server.WaitPost(() =>
|
||||||
@@ -30,6 +32,8 @@ public class RaiseEventBenchmark
|
|||||||
var uid = entMan.Spawn();
|
var uid = entMan.Spawn();
|
||||||
_sys.Ent = new(uid, entMan.GetComponent<TransformComponent>(uid));
|
_sys.Ent = new(uid, entMan.GetComponent<TransformComponent>(uid));
|
||||||
_sys.Ent2 = new(_sys.Ent.Owner, _sys.Ent.Comp);
|
_sys.Ent2 = new(_sys.Ent.Owner, _sys.Ent.Comp);
|
||||||
|
_sys.NetId = fact.GetRegistration<TransformComponent>().NetID!.Value;
|
||||||
|
_sys.EvSubs = bus.GetNetCompEventHandlers<BenchSystem.BenchEv>();
|
||||||
})
|
})
|
||||||
.GetAwaiter()
|
.GetAwaiter()
|
||||||
.GetResult();
|
.GetResult();
|
||||||
@@ -60,6 +64,12 @@ public class RaiseEventBenchmark
|
|||||||
return _sys.RaiseICompEvent();
|
return _sys.RaiseICompEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Benchmark]
|
||||||
|
public int RaiseNetEvent()
|
||||||
|
{
|
||||||
|
return _sys.RaiseNetIdEvent();
|
||||||
|
}
|
||||||
|
|
||||||
[Benchmark]
|
[Benchmark]
|
||||||
public int RaiseCSharpEvent()
|
public int RaiseCSharpEvent()
|
||||||
{
|
{
|
||||||
@@ -74,6 +84,8 @@ public class RaiseEventBenchmark
|
|||||||
public delegate void EntityEventHandler(EntityUid uid, TransformComponent comp, ref BenchEv ev);
|
public delegate void EntityEventHandler(EntityUid uid, TransformComponent comp, ref BenchEv ev);
|
||||||
|
|
||||||
public event EntityEventHandler? OnCSharpEvent;
|
public event EntityEventHandler? OnCSharpEvent;
|
||||||
|
public ushort NetId;
|
||||||
|
internal EntityEventBus.DirectedEventHandler?[] EvSubs = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -92,7 +104,7 @@ public class RaiseEventBenchmark
|
|||||||
public int RaiseCompEvent()
|
public int RaiseCompEvent()
|
||||||
{
|
{
|
||||||
var ev = new BenchEv();
|
var ev = new BenchEv();
|
||||||
EntityManager.EventBus.RaiseComponentEvent(Ent.Owner, Ent.Comp, ref ev);
|
RaiseComponentEvent(Ent.Owner, Ent.Comp, ref ev);
|
||||||
return ev.N;
|
return ev.N;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,7 +112,16 @@ public class RaiseEventBenchmark
|
|||||||
{
|
{
|
||||||
// Raise with an IComponent instead of concrete type
|
// Raise with an IComponent instead of concrete type
|
||||||
var ev = new BenchEv();
|
var ev = new BenchEv();
|
||||||
EntityManager.EventBus.RaiseComponentEvent(Ent2.Owner, Ent2.Comp, ref ev);
|
RaiseComponentEvent(Ent2.Owner, Ent2.Comp, ref ev);
|
||||||
|
return ev.N;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int RaiseNetIdEvent()
|
||||||
|
{
|
||||||
|
// Raise a "IComponent" event using a net-id index delegate array (for PVS & client game-state events)
|
||||||
|
var ev = new BenchEv();
|
||||||
|
ref var unitEv = ref Unsafe.As<BenchEv, EntityEventBus.Unit>(ref ev);
|
||||||
|
EvSubs[NetId]?.Invoke(Ent2.Owner, Ent2.Comp, ref unitEv);
|
||||||
return ev.N;
|
return ev.N;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,6 +139,7 @@ public class RaiseEventBenchmark
|
|||||||
}
|
}
|
||||||
|
|
||||||
[ByRefEvent]
|
[ByRefEvent]
|
||||||
|
[ComponentEvent(Exclusive = false)]
|
||||||
public struct BenchEv
|
public struct BenchEv
|
||||||
{
|
{
|
||||||
public int N;
|
public int N;
|
||||||
|
|||||||
Reference in New Issue
Block a user