mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-15 11:40:52 +01:00
* Create serialization copy benchmark * Optimize copy generic method call Before | Method | Mean | Error | StdDev | Median | |----------------------------------- |-------------:|-----------:|-----------:|-------------:| | CreateCopyString | 43.54 ns | 0.918 ns | 0.859 ns | 43.74 ns | | CreateCopyInteger | 19.33 ns | 0.388 ns | 0.860 ns | 19.24 ns | | CreateCopyDataDefinitionWithString | 3,971.42 ns | 78.974 ns | 213.512 ns | 3,902.54 ns | | CreateCopySeedDataDefinition | 49,916.69 ns | 264.992 ns | 221.280 ns | 49,950.53 ns | After | Method | Mean | Error | StdDev | |----------------------------------- |-------------:|-----------:|-----------:| | CreateCopyString | 43.15 ns | 0.917 ns | 1.766 ns | | CreateCopyInteger | 17.91 ns | 0.366 ns | 0.305 ns | | CreateCopyDataDefinitionWithString | 544.20 ns | 8.137 ns | 7.611 ns | | CreateCopySeedDataDefinition | 18,233.34 ns | 357.861 ns | 397.761 ns | * Change populate delegate to use IL | Method | Mean | Error | StdDev | |----------------------------- |------------:|----------:|----------:| | ReadString | 190.7 ns | 3.48 ns | 5.63 ns | | ReadInteger | 218.8 ns | 4.29 ns | 6.01 ns | | ReadDataDefinitionWithString | 677.5 ns | 13.34 ns | 24.06 ns | | ReadSeedDataDefinition | 11,067.0 ns | 219.19 ns | 260.93 ns | | Method | Mean | Error | StdDev | |----------------------------------- |-------------:|-----------:|-----------:| | CreateCopyString | 42.69 ns | 0.926 ns | 1.414 ns | | CreateCopyInteger | 18.02 ns | 0.268 ns | 0.237 ns | | CreateCopyDataDefinitionWithString | 556.80 ns | 11.206 ns | 21.589 ns | | CreateCopySeedDataDefinition | 13,797.07 ns | 256.011 ns | 367.163 ns | * Make copying use IL to get values | Method | Mean | Error | StdDev | |------------------------------------- |------------:|-----------:|-----------:| | CreateCopyString | 42.55 ns | 0.889 ns | 1.357 ns | | CreateCopyInteger | 18.72 ns | 0.394 ns | 0.740 ns | | CreateCopyDataDefinitionWithString | 398.98 ns | 7.853 ns | 12.682 ns | | CreateCopySeedDataDefinition | 5,996.60 ns | 118.724 ns | 181.304 ns | | BaselineCreateCopySeedDataDefinition | 340.85 ns | 6.811 ns | 12.281 ns | * Rest in peace the fast path For now * Fix serialization copying not passing the target ref properly * Fix field assigners for structs
12 lines
289 B
C#
12 lines
289 B
C#
using Robust.Shared.Serialization.Manager.Attributes;
|
|
|
|
namespace Robust.Benchmarks.Serialization.Definitions
|
|
{
|
|
[DataDefinition]
|
|
public class DataDefinitionWithString
|
|
{
|
|
[field: DataField("string")]
|
|
public string StringField { get; init; } = default!;
|
|
}
|
|
}
|