优化字符串数组和Object数组使用,减少GC分配
This commit is contained in:
parent
868f994cdd
commit
1b16e8369d
|
@ -470,7 +470,11 @@ public class FullRedis : Redis
|
||||||
{
|
{
|
||||||
if (keys == null || keys.Length == 0) return 0;
|
if (keys == null || keys.Length == 0) return 0;
|
||||||
|
|
||||||
keys = keys.Select(GetKey).ToArray();
|
//keys = keys.Select(GetKey).ToArray();
|
||||||
|
for (var i = 0; i < keys.Length; i++)
|
||||||
|
{
|
||||||
|
keys[i] = GetKey(keys[i]);
|
||||||
|
}
|
||||||
if (keys.Length == 1) return base.Remove(keys[0]);
|
if (keys.Length == 1) return base.Remove(keys[0]);
|
||||||
|
|
||||||
InitCluster();
|
InitCluster();
|
||||||
|
@ -481,7 +485,7 @@ public class FullRedis : Redis
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return Execute(keys.FirstOrDefault(), (rds, k) => rds.Execute<Int32>("DEL", keys), true);
|
return Execute(keys[0], (rds, k) => rds.Execute<Int32>("DEL", keys), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -999,16 +999,17 @@ public class RedisClient : DisposeBase
|
||||||
{
|
{
|
||||||
if (values == null || values.Count == 0) throw new ArgumentNullException(nameof(values));
|
if (values == null || values.Count == 0) throw new ArgumentNullException(nameof(values));
|
||||||
|
|
||||||
var ps = new List<Object>();
|
var k = 0;
|
||||||
|
var ps = new Object[values.Count * 2];
|
||||||
foreach (var item in values)
|
foreach (var item in values)
|
||||||
{
|
{
|
||||||
ps.Add(item.Key);
|
ps[k++] = item.Key;
|
||||||
|
|
||||||
if (item.Value == null) throw new NullReferenceException();
|
if (item.Value == null) throw new NullReferenceException();
|
||||||
ps.Add(item.Value);
|
ps[k++] = item.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
var rs = Execute<String>("MSET", ps.ToArray());
|
var rs = Execute<String>("MSET", ps);
|
||||||
if (rs != "OK")
|
if (rs != "OK")
|
||||||
{
|
{
|
||||||
using var span = Host.Tracer?.NewSpan($"redis:{Name}:ErrorSetAll", values);
|
using var span = Host.Tracer?.NewSpan($"redis:{Name}:ErrorSetAll", values);
|
||||||
|
|
Loading…
Reference in New Issue