Дополнительная информация для тестирования производительности

This commit is contained in:
2025-02-18 22:35:02 +03:00
parent 4e4cdc4762
commit bc54a7d25c
4 changed files with 10 additions and 7 deletions
+4 -2
View File
@@ -5,6 +5,7 @@ using mROA.Codegen;
using mROA.Implementation; using mROA.Implementation;
using mROA.Implementation.Backend; using mROA.Implementation.Backend;
using mROA.Implementation.Bootstrap; using mROA.Implementation.Bootstrap;
using mROA.Implementation.Frontend;
var builder = new FullMixBuilder(); var builder = new FullMixBuilder();
@@ -14,7 +15,7 @@ builder.UseNetworkGateway(new IPEndPoint(IPAddress.Loopback, 4567), typeof(NextG
builder.GetModule<IIdentityGenerator>()!); builder.GetModule<IIdentityGenerator>()!);
builder.Modules.Add(new ConnectionHub()); builder.Modules.Add(new ConnectionHub());
builder.Modules.Add(new HubRequestExtractor()); builder.Modules.Add(new HubRequestExtractor(typeof(RequestExtractor)));
builder.UseBasicExecution(); builder.UseBasicExecution();
@@ -27,7 +28,8 @@ builder.Modules.Add(new MultiClientContextRepository(i =>
return repo; return repo;
})); }));
builder.SetupMethodsRepository(new CoCodegenMethodRepository()); builder.SetupMethodsRepository(new CoCodegenMethodRepository());
builder.Modules.Add(new CreativeSerializationModuleProducer([builder.GetModule<JsonSerializationToolkit>()!], typeof(RepresentationModule))); builder.Modules.Add(new CreativeRepresentationModuleProducer([builder.GetModule<JsonSerializationToolkit>()!],
typeof(RepresentationModule)));
builder.Build(); builder.Build();
new RemoteTypeBinder(); new RemoteTypeBinder();
+1
View File
@@ -76,3 +76,4 @@ for (int i = 0; i < iterations; i++)
timer.Stop(); timer.Stop();
Console.WriteLine("X is {0}", x); Console.WriteLine("X is {0}", x);
Console.WriteLine("Time : {0}", timer.Elapsed.TotalMilliseconds); Console.WriteLine("Time : {0}", timer.Elapsed.TotalMilliseconds);
Console.WriteLine($"Time per call: {timer.Elapsed.TotalMilliseconds / iterations} ms");
@@ -3,7 +3,7 @@ using mROA.Implementation.Frontend;
namespace mROA.Implementation.Backend; namespace mROA.Implementation.Backend;
public class HubRequestExtractor : IInjectableModule public class HubRequestExtractor(Type extractoType) : IInjectableModule
{ {
private IConnectionHub _hub; private IConnectionHub _hub;
@@ -37,7 +37,7 @@ public class HubRequestExtractor : IInjectableModule
private void HubOnOnConnected(IRepresentationModule interaction) private void HubOnOnConnected(IRepresentationModule interaction)
{ {
var extractor = new RequestExtractor(); var extractor = (IRequestExtractor)Activator.CreateInstance(extractoType)!;
extractor.Inject(interaction); extractor.Inject(interaction);
if (_contextRepository is IContextRepositoryHub contextHub) if (_contextRepository is IContextRepositoryHub contextHub)
extractor.Inject(contextHub.GetRepository(interaction.Id)); extractor.Inject(contextHub.GetRepository(interaction.Id));
@@ -2,13 +2,13 @@
namespace mROA.Implementation; namespace mROA.Implementation;
public class CreativeSerializationModuleProducer : IRepresentationModuleProducer public class CreativeRepresentationModuleProducer : IRepresentationModuleProducer
{ {
private Type _reprModuleType; private Type _reprModuleType;
private IInjectableModule[] _creationModules; private IInjectableModule[] _creationModules;
private IConnectionHub? _hub; private IConnectionHub? _hub;
public CreativeSerializationModuleProducer(IInjectableModule[] creationModules, Type reprModuleType) public CreativeRepresentationModuleProducer(IInjectableModule[] creationModules, Type reprModuleType)
{ {
_creationModules = creationModules; _creationModules = creationModules;
_reprModuleType = reprModuleType; _reprModuleType = reprModuleType;