Skip to content

Commit

Permalink
Merge branch 'main' into luaMemoryLimits
Browse files Browse the repository at this point in the history
  • Loading branch information
kevin-montrose authored Jan 8, 2025
2 parents a2996e9 + 56394d8 commit c5fb7f0
Show file tree
Hide file tree
Showing 17 changed files with 758 additions and 1 deletion.
55 changes: 55 additions & 0 deletions libs/resources/RespCommandsDocs.json
Original file line number Diff line number Diff line change
Expand Up @@ -3337,6 +3337,61 @@
}
]
},
{
"Command": "LCS",
"Name": "LCS",
"Summary": "Finds the longest common substring.",
"Group": "String",
"Complexity": "O(N*M) where N and M are the lengths of s1 and s2, respectively",
"Arguments": [
{
"TypeDiscriminator": "RespCommandKeyArgument",
"Name": "KEY1",
"DisplayText": "key1",
"Type": "Key",
"KeySpecIndex": 0
},
{
"TypeDiscriminator": "RespCommandKeyArgument",
"Name": "KEY2",
"DisplayText": "key2",
"Type": "Key",
"KeySpecIndex": 0
},
{
"TypeDiscriminator": "RespCommandBasicArgument",
"Name": "LEN",
"DisplayText": "len",
"Type": "PureToken",
"Token": "LEN",
"ArgumentFlags": "Optional"
},
{
"TypeDiscriminator": "RespCommandBasicArgument",
"Name": "IDX",
"DisplayText": "idx",
"Type": "PureToken",
"Token": "IDX",
"ArgumentFlags": "Optional"
},
{
"TypeDiscriminator": "RespCommandBasicArgument",
"Name": "MIN-MATCH-LEN",
"DisplayText": "min-match-len",
"Type": "Integer",
"Token": "MINMATCHLEN",
"ArgumentFlags": "Optional"
},
{
"TypeDiscriminator": "RespCommandBasicArgument",
"Name": "WITHMATCHLEN",
"DisplayText": "withmatchlen",
"Type": "PureToken",
"Token": "WITHMATCHLEN",
"ArgumentFlags": "Optional"
}
]
},
{
"Command": "LINDEX",
"Name": "LINDEX",
Expand Down
25 changes: 25 additions & 0 deletions libs/resources/RespCommandsInfo.json
Original file line number Diff line number Diff line change
Expand Up @@ -2113,6 +2113,31 @@
}
]
},
{
"Command": "LCS",
"Name": "LCS",
"Arity": -3,
"Flags": "ReadOnly",
"FirstKey": 1,
"LastKey": 2,
"Step": 1,
"AclCategories": "Read, Slow, String",
"KeySpecifications": [
{
"BeginSearch": {
"TypeDiscriminator": "BeginSearchIndex",
"Index": 1
},
"FindKeys": {
"TypeDiscriminator": "FindKeysRange",
"LastKey": 1,
"KeyStep": 1,
"Limit": 0
},
"Flags": "RO, Access"
}
]
},
{
"Command": "LINDEX",
"Name": "LINDEX",
Expand Down
4 changes: 4 additions & 0 deletions libs/server/API/GarnetApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ public unsafe GarnetStatus GET(ArgSlice key, out ArgSlice value)
/// <inheritdoc />
public GarnetStatus GET(byte[] key, out GarnetObjectStoreOutput value)
=> storageSession.GET(key, out value, ref objectContext);

/// <inheritdoc />
public GarnetStatus LCS(ArgSlice key1, ArgSlice key2, ref SpanByteAndMemory output, bool lenOnly = false, bool withIndices = false, bool withMatchLen = false, int minMatchLen = 0)
=> storageSession.LCS(key1, key2, ref output, lenOnly, withIndices, withMatchLen, minMatchLen);
#endregion

#region GETEX
Expand Down
8 changes: 8 additions & 0 deletions libs/server/API/GarnetWatchApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@ public GarnetStatus GET(byte[] key, out GarnetObjectStoreOutput value)
garnetApi.WATCH(key, StoreType.Object);
return garnetApi.GET(key, out value);
}

/// <inheritdoc />
public GarnetStatus LCS(ArgSlice key1, ArgSlice key2, ref SpanByteAndMemory output, bool lenOnly = false, bool withIndices = false, bool withMatchLen = false, int minMatchLen = 0)
{
garnetApi.WATCH(key1, StoreType.Object);
garnetApi.WATCH(key2, StoreType.Object);
return garnetApi.LCS(key1, key2, ref output, lenOnly, withIndices, withMatchLen, minMatchLen);
}
#endregion

#region GETRANGE
Expand Down
13 changes: 13 additions & 0 deletions libs/server/API/IGarnetApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1122,6 +1122,19 @@ public interface IGarnetReadApi
/// <param name="value"></param>
/// <returns></returns>
GarnetStatus GET(byte[] key, out GarnetObjectStoreOutput value);

/// <summary>
/// Finds the longest common subsequence (LCS) between two keys.
/// </summary>
/// <param name="key1">The first key to compare.</param>
/// <param name="key2">The second key to compare.</param>
/// <param name="output">The output containing the LCS result.</param>
/// <param name="lenOnly">If true, only the length of the LCS is returned.</param>
/// <param name="withIndices">If true, the indices of the LCS in both keys are returned.</param>
/// <param name="withMatchLen">If true, the length of each match is returned.</param>
/// <param name="minMatchLen">The minimum length of a match to be considered.</param>
/// <returns>The status of the operation.</returns>
GarnetStatus LCS(ArgSlice key1, ArgSlice key2, ref SpanByteAndMemory output, bool lenOnly = false, bool withIndices = false, bool withMatchLen = false, int minMatchLen = 0);
#endregion

#region GETRANGE
Expand Down
72 changes: 72 additions & 0 deletions libs/server/Resp/ArrayCommands.cs
Original file line number Diff line number Diff line change
Expand Up @@ -450,5 +450,77 @@ private bool NetworkArrayPING()
WriteDirectLargeRespString(message);
return true;
}

private bool NetworkLCS<TGarnetApi>(ref TGarnetApi storageApi)
where TGarnetApi : IGarnetApi
{
if (parseState.Count < 2)
return AbortWithWrongNumberOfArguments(nameof(RespCommand.LCS));

var key1 = parseState.GetArgSliceByRef(0);
var key2 = parseState.GetArgSliceByRef(1);

// Parse options
var lenOnly = false;
var withIndices = false;
var minMatchLen = 0;
var withMatchLen = false;
var tokenIdx = 2;
while (tokenIdx < parseState.Count)
{
var option = parseState.GetArgSliceByRef(tokenIdx++).ReadOnlySpan;

if (option.EqualsUpperCaseSpanIgnoringCase(CmdStrings.LEN))
{
lenOnly = true;
}
else if (option.EqualsUpperCaseSpanIgnoringCase(CmdStrings.IDX))
{
withIndices = true;
}
else if (option.EqualsUpperCaseSpanIgnoringCase(CmdStrings.MINMATCHLEN))
{
if (tokenIdx + 1 > parseState.Count)
{
return AbortWithErrorMessage(CmdStrings.RESP_SYNTAX_ERROR);
}

if (!parseState.TryGetInt(tokenIdx++, out var minLen))
{
return AbortWithErrorMessage(CmdStrings.RESP_ERR_GENERIC_VALUE_IS_NOT_INTEGER);
}

if (minLen < 0)
{
minLen = 0;
}

minMatchLen = minLen;
}
else if (option.EqualsUpperCaseSpanIgnoringCase(CmdStrings.WITHMATCHLEN))
{
withMatchLen = true;
}
else
{
return AbortWithErrorMessage(CmdStrings.RESP_SYNTAX_ERROR);
}
}

if (lenOnly && withIndices)
{
return AbortWithErrorMessage(CmdStrings.RESP_ERR_LENGTH_AND_INDEXES);
}

var output = new SpanByteAndMemory(dcurr, (int)(dend - dcurr));
var status = storageApi.LCS(key1, key2, ref output, lenOnly, withIndices, withMatchLen, minMatchLen);

if (!output.IsSpanByte)
SendAndReset(output.Memory, output.Length);
else
dcurr += output.Length;

return true;
}
}
}
7 changes: 7 additions & 0 deletions libs/server/Resp/CmdStrings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,10 @@ static partial class CmdStrings
public static ReadOnlySpan<byte> WEIGHTS => "WEIGHTS"u8;
public static ReadOnlySpan<byte> AGGREGATE => "AGGREGATE"u8;
public static ReadOnlySpan<byte> SUM => "SUM"u8;
public static ReadOnlySpan<byte> LEN => "LEN"u8;
public static ReadOnlySpan<byte> IDX => "IDX"u8;
public static ReadOnlySpan<byte> MINMATCHLEN => "MINMATCHLEN"u8;
public static ReadOnlySpan<byte> WITHMATCHLEN => "WITHMATCHLEN"u8;

/// <summary>
/// Response strings
Expand All @@ -140,6 +144,8 @@ static partial class CmdStrings
public static ReadOnlySpan<byte> RESP_PONG => "+PONG\r\n"u8;
public static ReadOnlySpan<byte> RESP_EMPTY => "$0\r\n\r\n"u8;
public static ReadOnlySpan<byte> RESP_QUEUED => "+QUEUED\r\n"u8;
public static ReadOnlySpan<byte> matches => "matches"u8;
public static ReadOnlySpan<byte> len => "len"u8;

/// <summary>
/// Simple error response strings, i.e. these are of the form "-errorString\r\n"
Expand Down Expand Up @@ -215,6 +221,7 @@ static partial class CmdStrings
public static ReadOnlySpan<byte> RESP_ERR_INCR_SUPPORTS_ONLY_SINGLE_PAIR => "ERR INCR option supports a single increment-element pair"u8;
public static ReadOnlySpan<byte> RESP_ERR_INVALID_BITFIELD_TYPE => "ERR Invalid bitfield type. Use something like i16 u8. Note that u64 is not supported but i64 is"u8;
public static ReadOnlySpan<byte> RESP_ERR_SCRIPT_FLUSH_OPTIONS => "ERR SCRIPT FLUSH only support SYNC|ASYNC option"u8;
public static ReadOnlySpan<byte> RESP_ERR_LENGTH_AND_INDEXES => "If you want both the length and indexes, please just use IDX."u8;

/// <summary>
/// Response string templates
Expand Down
5 changes: 5 additions & 0 deletions libs/server/Resp/Parser/RespCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public enum RespCommand : ushort
HSTRLEN,
HVALS,
KEYS,
LCS,
LINDEX,
LLEN,
LPOS,
Expand Down Expand Up @@ -772,6 +773,10 @@ private RespCommand FastParseArrayCommand(ref int count, ref ReadOnlySpan<byte>
{
return RespCommand.DEL;
}
else if (*(ulong*)(ptr + 1) == MemoryMarshal.Read<ulong>("3\r\nLCS\r\n"u8))
{
return RespCommand.LCS;
}

break;

Expand Down
2 changes: 2 additions & 0 deletions libs/server/Resp/RespServerSession.cs
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,8 @@ private bool ProcessOtherCommands<TGarnetApi>(RespCommand command, ref TGarnetAp

RespCommand.EVAL => TryEVAL(),
RespCommand.EVALSHA => TryEVALSHA(),
// Slow commands
RespCommand.LCS => NetworkLCS(ref storageApi),
_ => Process(command)
};

Expand Down
Loading

10 comments on commit c5fb7f0

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Network.BasicOperations (ubuntu-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Network.BasicOperations.InlinePing(Params: None) 93.73859244585037 ns (± 0.47227644588719037) 101.1893106619517 ns (± 0.8047124769327589) 0.93

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cluster.ClusterMigrate (ubuntu-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Cluster.ClusterMigrate.Get(Params: None) 36436.48713684082 ns (± 39.80203969144691) 36981.49022013346 ns (± 329.8917036105692) 0.99
BDN.benchmark.Cluster.ClusterMigrate.Set(Params: None) 38569.00209960937 ns (± 492.5887067519433) 40157.473557692305 ns (± 112.99164145843531) 0.96
BDN.benchmark.Cluster.ClusterMigrate.MGet(Params: None) 32022.820951021633 ns (± 45.26971436931157) 32172.700576782227 ns (± 39.40457849952728) 1.00
BDN.benchmark.Cluster.ClusterMigrate.MSet(Params: None) 32229.758860270184 ns (± 16.763841994104094) 31990.912848839394 ns (± 77.6818933439769) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Network.BasicOperations (windows-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Network.BasicOperations.InlinePing(Params: None) 82.86551137765248 ns (± 0.14285165434381583) 82.30648040771484 ns (± 0.16251536764089047) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cluster.ClusterOperations (ubuntu-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Cluster.ClusterOperations.Get(Params: DSV) 16599.786499023438 ns (± 100.85504577955523) 16815.508619035994 ns (± 145.31641962554713) 0.99
BDN.benchmark.Cluster.ClusterOperations.Set(Params: DSV) 16729.713755680965 ns (± 29.313341494204483) 16715.466636657715 ns (± 27.88427243313116) 1.00
BDN.benchmark.Cluster.ClusterOperations.MGet(Params: DSV) 16692.529621669226 ns (± 65.86439737613054) 15524.552764892578 ns (± 14.184621239291555) 1.08
BDN.benchmark.Cluster.ClusterOperations.MSet(Params: DSV) 14692.78347269694 ns (± 12.090178288263765) 14587.54783935547 ns (± 85.89320803039502) 1.01
BDN.benchmark.Cluster.ClusterOperations.CTXNSET(Params: DSV) 120126.1803414481 ns (± 408.186229210033) 121671.36925330528 ns (± 559.9260305984826) 0.99
BDN.benchmark.Cluster.ClusterOperations.Get(Params: None) 21693.74521092006 ns (± 91.88305486993492) 20777.597290039062 ns (± 98.84581764225649) 1.04
BDN.benchmark.Cluster.ClusterOperations.Set(Params: None) 20299.387013362004 ns (± 27.422726332262744) 21014.107328626844 ns (± 430.1466560327672) 0.97
BDN.benchmark.Cluster.ClusterOperations.MGet(Params: None) 16855.30276137132 ns (± 55.72327127667761) 16194.799463125375 ns (± 26.23046707152896) 1.04
BDN.benchmark.Cluster.ClusterOperations.MSet(Params: None) 15126.62758178711 ns (± 51.034912143105565) 15685.056189903846 ns (± 14.791433793990798) 0.96
BDN.benchmark.Cluster.ClusterOperations.CTXNSET(Params: None) 129729.82513897236 ns (± 121.17082971146831) 138797.07088216147 ns (± 368.5519152953795) 0.93

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Network.RawStringOperations (ubuntu-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Network.RawStringOperations.Set(Params: None) 230.95668845176698 ns (± 1.2785516379238797) 223.85257933934528 ns (± 1.291994718926844) 1.03
BDN.benchmark.Network.RawStringOperations.SetEx(Params: None) 304.00826365152994 ns (± 1.7162503006813314) 288.28548863728844 ns (± 1.9576338225628345) 1.05
BDN.benchmark.Network.RawStringOperations.SetNx(Params: None) 285.9688699062054 ns (± 0.2769640898843354) 278.4738355416518 ns (± 0.9619362081798204) 1.03
BDN.benchmark.Network.RawStringOperations.SetXx(Params: None) 305.27868594442094 ns (± 1.908216549919606) 295.3426695210593 ns (± 1.4015691582427656) 1.03
BDN.benchmark.Network.RawStringOperations.GetFound(Params: None) 247.68195734705245 ns (± 1.4064893038812045) 297.7399179458618 ns (± 1.3966504329893776) 0.83
BDN.benchmark.Network.RawStringOperations.GetNotFound(Params: None) 189.80909629662833 ns (± 1.1146273509004196) 188.33051664829253 ns (± 1.52074595822903) 1.01
BDN.benchmark.Network.RawStringOperations.Increment(Params: None) 329.2674416395334 ns (± 0.4775466863963224) 301.5713952064514 ns (± 1.4732249910679855) 1.09
BDN.benchmark.Network.RawStringOperations.Decrement(Params: None) 305.69512288911 ns (± 2.3107341609633685) 305.90826537058905 ns (± 1.2013199400883976) 1.00
BDN.benchmark.Network.RawStringOperations.IncrementBy(Params: None) 365.7349162835341 ns (± 1.1299913593325819) 389.38290719985963 ns (± 2.530035331540693) 0.94
BDN.benchmark.Network.RawStringOperations.DecrementBy(Params: None) 356.3953332901001 ns (± 1.7119679689842207) 355.2735410928726 ns (± 0.2400485498218751) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cluster.ClusterMigrate (windows-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Cluster.ClusterMigrate.Get(Params: None) 35066.96995326451 ns (± 13.281772753655453) 34553.358677455355 ns (± 61.81262755743221) 1.01
BDN.benchmark.Cluster.ClusterMigrate.Set(Params: None) 38095.24666922433 ns (± 57.54648668703237) 35779.15696364183 ns (± 37.398709357281625) 1.06
BDN.benchmark.Cluster.ClusterMigrate.MGet(Params: None) 30691.83607835036 ns (± 29.17286944511315) 30836.241032527043 ns (± 22.461642261705368) 1.00
BDN.benchmark.Cluster.ClusterMigrate.MSet(Params: None) 29890.36876971905 ns (± 21.626214310663688) 30871.488647460938 ns (± 48.38692683812301) 0.97

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cluster.ClusterOperations (windows-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Cluster.ClusterOperations.Get(Params: DSV) 15885.327584402901 ns (± 20.140215947688283) 15833.13939021184 ns (± 30.89452482896761) 1.00
BDN.benchmark.Cluster.ClusterOperations.Set(Params: DSV) 14825.385284423828 ns (± 18.246537904232916) 14643.306078229632 ns (± 22.588595957654526) 1.01
BDN.benchmark.Cluster.ClusterOperations.MGet(Params: DSV) 14336.919911702475 ns (± 39.397259841479325) 14517.96155657087 ns (± 10.836267830348623) 0.99
BDN.benchmark.Cluster.ClusterOperations.MSet(Params: DSV) 12948.98666381836 ns (± 23.221115109921918) 13098.6449608436 ns (± 20.852495999958144) 0.99
BDN.benchmark.Cluster.ClusterOperations.CTXNSET(Params: DSV) 131297.87772042412 ns (± 127.91307780392566) 133140.2597280649 ns (± 197.3839457518273) 0.99
BDN.benchmark.Cluster.ClusterOperations.Get(Params: None) 18915.92966715495 ns (± 18.620970320640005) 21132.743131197414 ns (± 24.578538443852036) 0.90
BDN.benchmark.Cluster.ClusterOperations.Set(Params: None) 18388.08375767299 ns (± 27.178355264177785) 19304.611206054688 ns (± 28.921128688507988) 0.95
BDN.benchmark.Cluster.ClusterOperations.MGet(Params: None) 15332.387288411459 ns (± 33.99966827408343) 15940.60762845553 ns (± 18.02927559230091) 0.96
BDN.benchmark.Cluster.ClusterOperations.MSet(Params: None) 14338.258565266928 ns (± 59.00141670024651) 14729.654928354117 ns (± 29.86198515029438) 0.97
BDN.benchmark.Cluster.ClusterOperations.CTXNSET(Params: None) 142689.76876395088 ns (± 142.6564213557144) 145641.60330636162 ns (± 240.0386412692425) 0.98

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Network.RawStringOperations (windows-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Network.RawStringOperations.Set(Params: None) 205.89370727539062 ns (± 0.4233245844213167) 216.10538618905204 ns (± 0.258183198233404) 0.95
BDN.benchmark.Network.RawStringOperations.SetEx(Params: None) 280.7724782398769 ns (± 0.6521243692565839) 274.4245497385661 ns (± 0.3598988793921302) 1.02
BDN.benchmark.Network.RawStringOperations.SetNx(Params: None) 259.87774303981234 ns (± 0.7881214367103296) 251.6524938436655 ns (± 0.5630166144695334) 1.03
BDN.benchmark.Network.RawStringOperations.SetXx(Params: None) 276.15984848567416 ns (± 1.3148461647462373) 270.521303323599 ns (± 0.7658841309073049) 1.02
BDN.benchmark.Network.RawStringOperations.GetFound(Params: None) 217.61189017977034 ns (± 0.20240259172259878) 222.7792755762736 ns (± 0.1940194713867311) 0.98
BDN.benchmark.Network.RawStringOperations.GetNotFound(Params: None) 171.4369773864746 ns (± 0.23571025956881775) 170.64260519467868 ns (± 0.2744181496058978) 1.00
BDN.benchmark.Network.RawStringOperations.Increment(Params: None) 285.67415384145886 ns (± 0.4286267740625051) 287.2716546058655 ns (± 0.5281826878543204) 0.99
BDN.benchmark.Network.RawStringOperations.Decrement(Params: None) 294.3209152955275 ns (± 0.7961591648712877) 293.4925587972005 ns (± 0.6075589609921602) 1.00
BDN.benchmark.Network.RawStringOperations.IncrementBy(Params: None) 352.6034116744995 ns (± 0.23709893228285409) 326.8435557683309 ns (± 1.0999713074532345) 1.08
BDN.benchmark.Network.RawStringOperations.DecrementBy(Params: None) 329.35708931514193 ns (± 0.2847650313905155) 323.22439511617023 ns (± 1.1408015759310097) 1.02

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lua.LuaScripts (ubuntu-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Lua.LuaScripts.Script1(Params: Managed,Limit) 418.3298049926758 ns (± 1.6010194205916468)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Managed,Limit) 604.1493343989055 ns (± 2.223273654172805)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Managed,Limit) 827.5476948420206 ns (± 2.3419923851689277)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Managed,Limit) 826.9832291603088 ns (± 2.253463477798693)
BDN.benchmark.Lua.LuaScripts.Script1(Params: Managed,None) 409.4506101926168 ns (± 0.9044087098352165)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Managed,None) 599.8204704693386 ns (± 1.7363299027252446)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Managed,None) 810.9401728312174 ns (± 2.5805748149262846)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Managed,None) 858.7566827138265 ns (± 1.9420385915215082)
BDN.benchmark.Lua.LuaScripts.Script1(Params: Native,None) 386.9187347412109 ns (± 0.9172812216098829)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Native,None) 611.7236579486301 ns (± 2.4463121112946227)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Native,None) 820.3081436157227 ns (± 1.1543325742597572)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Native,None) 809.8277585689838 ns (± 2.013194584347874)
BDN.benchmark.Lua.LuaScripts.Script1(Params: Tracked,Limit) 405.51464994137103 ns (± 0.5323171351627614)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Tracked,Limit) 608.3632093429566 ns (± 2.009285408906021)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Tracked,Limit) 816.6770020212446 ns (± 2.342110727006617)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Tracked,Limit) 822.9621796925862 ns (± 1.634715967614865)
BDN.benchmark.Lua.LuaScripts.Script1(Params: Tracked,None) 388.3457820598896 ns (± 0.24448306462183067)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Tracked,None) 611.1272114435832 ns (± 1.5599694818125363)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Tracked,None) 834.2665856679281 ns (± 3.5919954576722795)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Tracked,None) 809.9126237722544 ns (± 1.9181458451003823)

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lua.LuaScripts (windows-latest net8.0 Release)

Benchmark suite Current: c5fb7f0 Previous: af9cf0e Ratio
BDN.benchmark.Lua.LuaScripts.Script1(Params: Managed,Limit) 195.08135318756104 ns (± 0.2242670955108245)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Managed,Limit) 286.81191126505536 ns (± 0.5336928324430169)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Managed,Limit) 370.8856264750163 ns (± 0.6555305010055493)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Managed,Limit) 346.4765105928694 ns (± 0.887697463326606)
BDN.benchmark.Lua.LuaScripts.Script1(Params: Managed,None) 200.1036787033081 ns (± 0.7852259640915179)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Managed,None) 264.400281224932 ns (± 0.42028001570593027)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Managed,None) 386.0513051350911 ns (± 0.9584517637232952)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Managed,None) 365.2667284011841 ns (± 1.752540122796964)
BDN.benchmark.Lua.LuaScripts.Script1(Params: Native,None) 226.2552801767985 ns (± 0.3507407563966719)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Native,None) 264.3573079790388 ns (± 0.8466347480033869)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Native,None) 364.31769132614136 ns (± 0.7988164856580757)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Native,None) 362.01923688252765 ns (± 0.5753154093678488)
BDN.benchmark.Lua.LuaScripts.Script1(Params: Tracked,Limit) 194.07790660858154 ns (± 0.3400816235718643)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Tracked,Limit) 278.63140472998987 ns (± 0.48907257579139657)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Tracked,Limit) 368.53435039520264 ns (± 0.7225601152848838)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Tracked,Limit) 368.63555227007186 ns (± 0.5662988753184995)
BDN.benchmark.Lua.LuaScripts.Script1(Params: Tracked,None) 276.24852657318115 ns (± 0.710147320810266)
BDN.benchmark.Lua.LuaScripts.Script2(Params: Tracked,None) 308.98148854573566 ns (± 0.37670668847698474)
BDN.benchmark.Lua.LuaScripts.Script3(Params: Tracked,None) 363.00046627338116 ns (± 0.5691359170361711)
BDN.benchmark.Lua.LuaScripts.Script4(Params: Tracked,None) 342.416197458903 ns (± 0.9440503869504978)

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.