提交 a8f6b30e 编写于 作者: S Sam Harwell

Remove pooled Stopwatch

SharedStopwatch already offers a more efficient alternative.
上级 27654b06
......@@ -3,7 +3,6 @@
// See the LICENSE file in the project root for more information.
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using Microsoft.CodeAnalysis.PooledObjects;
......@@ -16,9 +15,6 @@ internal static class SharedPoolExtensions
public static PooledObject<StringBuilder> GetPooledObject(this ObjectPool<StringBuilder> pool)
=> PooledObject<StringBuilder>.Create(pool);
public static PooledObject<Stopwatch> GetPooledObject(this ObjectPool<Stopwatch> pool)
=> PooledObject<Stopwatch>.Create(pool);
public static PooledObject<Stack<TItem>> GetPooledObject<TItem>(this ObjectPool<Stack<TItem>> pool)
=> PooledObject<Stack<TItem>>.Create(pool);
......@@ -52,14 +48,6 @@ public static StringBuilder AllocateAndClear(this ObjectPool<StringBuilder> pool
return sb;
}
public static Stopwatch AllocateAndClear(this ObjectPool<Stopwatch> pool)
{
var watch = pool.Allocate();
watch.Reset();
return watch;
}
public static Stack<T> AllocateAndClear<T>(this ObjectPool<Stack<T>> pool)
{
var set = pool.Allocate();
......@@ -117,17 +105,6 @@ public static void ClearAndFree(this ObjectPool<StringBuilder> pool, StringBuild
pool.Free(sb);
}
public static void ClearAndFree(this ObjectPool<Stopwatch> pool, Stopwatch watch)
{
if (watch == null)
{
return;
}
watch.Reset();
pool.Free(watch);
}
public static void ClearAndFree<T>(this ObjectPool<HashSet<T>> pool, HashSet<T> set)
{
if (set == null)
......
......@@ -4,7 +4,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using Microsoft.CodeAnalysis.PooledObjects;
......@@ -46,14 +45,6 @@ public static PooledObject<StringBuilder> Create(ObjectPool<StringBuilder> pool)
(p, sb) => Releaser(p, sb));
}
public static PooledObject<Stopwatch> Create(ObjectPool<Stopwatch> pool)
{
return new PooledObject<Stopwatch>(
pool,
p => Allocator(p),
(p, sb) => Releaser(p, sb));
}
public static PooledObject<Stack<TItem>> Create<TItem>(ObjectPool<Stack<TItem>> pool)
{
return new PooledObject<Stack<TItem>>(
......@@ -102,12 +93,6 @@ private static StringBuilder Allocator(ObjectPool<StringBuilder> pool)
private static void Releaser(ObjectPool<StringBuilder> pool, StringBuilder sb)
=> pool.ClearAndFree(sb);
private static Stopwatch Allocator(ObjectPool<Stopwatch> pool)
=> pool.AllocateAndClear();
private static void Releaser(ObjectPool<Stopwatch> pool, Stopwatch sb)
=> pool.ClearAndFree(sb);
private static Stack<TItem> Allocator<TItem>(ObjectPool<Stack<TItem>> pool)
=> pool.AllocateAndClear();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册