diff options
author | Mike Krüger <mikkrg@microsoft.com> | 2018-02-27 14:52:06 +0300 |
---|---|---|
committer | Mike Krüger <mikkrg@microsoft.com> | 2018-02-27 14:52:06 +0300 |
commit | 0dd2ace6ccc4085be98047db78331c0bb5399914 (patch) | |
tree | eb53052b104c64ed5b50ce3c9a07fc1ffbb74ebf /main/src | |
parent | 4abf9ecf79a9ebbb0288e5a54e4fd24ee9c823f5 (diff) |
[Core] Implemented treshold for the StringBuilderCache.
Diffstat (limited to 'main/src')
-rw-r--r-- | main/src/core/MonoDevelop.Core/MonoDevelop.Core/StringBuilderCache.cs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/StringBuilderCache.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/StringBuilderCache.cs index c3d3c86084..b2957ed843 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/StringBuilderCache.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/StringBuilderCache.cs @@ -33,6 +33,8 @@ namespace MonoDevelop.Core /// </summary> public static class StringBuilderCache { + const int Threshold = 4096; + public static StringBuilder Allocate () { var result = SharedPools.Default<StringBuilder> ().Allocate (); @@ -47,6 +49,9 @@ namespace MonoDevelop.Core public static void Free (StringBuilder sb) { + sb.Clear (); + if (sb.Capacity > Threshold) + sb.Capacity = Threshold; SharedPools.Default<StringBuilder> ().Free (sb); } |