diff options
author | Marius Ungureanu <teromario@yahoo.com> | 2017-03-28 20:47:27 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-28 20:47:27 +0300 |
commit | 522676ea6126e743df6b108a194dc155f4e8519e (patch) | |
tree | ac459b894ab7dd2beb272715b5e4a96dd86374a0 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Util | |
parent | 6e309ed367ebe2719c26e80409f43e2f88a7f019 (diff) |
Misc opt (#1960)
* [Core] Remove superfluous ToCharArray.
* [Perf] Optimize StringBuilder usage
Go through StringBuilder.Append(string) and StringBuilder.Append(object)
usages. As follows, we no longer concat strings before appending to a
stringbuilder, and we no longer box valueTypes which go through
Append(object).
* [Perf] Optimize StringBuilder.AppendLine
Most notable improvements are in AssemblyBrowser and Diff calculation.
* Fix feedback.
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Util')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Util/Diff.cs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Util/Diff.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Util/Diff.cs index 04a4f871fc..dd8b8a32b5 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Util/Diff.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor.Util/Diff.cs @@ -472,13 +472,13 @@ namespace MonoDevelop.Ide.Editor.Util insStart = System.Math.Max (1, item.InsertStart - (distance != 0 ? distance : item.Context)); for (int i = System.Math.Min (remStart, insStart); i < item.RemoveStart; i++) { - sb.AppendLine (" " + baseDocument.GetLineText (i, false)); + sb.Append (" ").AppendLine (baseDocument.GetLineText (i, false)); } for (int i = item.RemoveStart; i < item.RemoveStart + item.Removed; i++) { - sb.AppendLine ("-" + baseDocument.GetLineText (i, false)); + sb.Append ("-").AppendLine (baseDocument.GetLineText (i, false)); } for (int i = item.InsertStart; i < item.InsertStart + item.Inserted; i++) { - sb.AppendLine ("+" + changedDocument.GetLineText (i, false)); + sb.Append ("+").AppendLine (changedDocument.GetLineText (i, false)); } if (qh.Count != 0) @@ -487,7 +487,7 @@ namespace MonoDevelop.Ide.Editor.Util int remEnd = System.Math.Min (baseDocument.LineCount, item.RemoveStart + item.Removed + item.Context); for (int i = item.RemoveStart + item.Removed; i < remEnd; i++) { - sb.AppendLine (" " + baseDocument.GetLineText (i, false)); + sb.Append (" ").AppendLine (baseDocument.GetLineText (i, false)); } } @@ -512,8 +512,8 @@ namespace MonoDevelop.Ide.Editor.Util if (he.Current.IsEmpty) return ""; - sb.AppendLine ("--- " + baseFileName); - sb.AppendLine ("+++ " + changedFileName); + sb.Append ("--- ").AppendLine (baseFileName); + sb.Append ("+++ ").AppendLine (changedFileName); current = he.Current; @@ -531,7 +531,7 @@ namespace MonoDevelop.Ide.Editor.Util remEnd = System.Math.Min (baseDocument.LineCount, next.RemoveStart + next.Removed + next.Context); insEnd = System.Math.Min (changedDocument.LineCount, next.InsertStart + next.Inserted + next.Context); } else { - sb.AppendLine ("@@ -" + remStart + "," + (remEnd - remStart) + " +" + insStart + "," + (insEnd - insStart) + " @@"); + sb.Append ("@@ -").Append (remStart).Append (",").Append (remEnd - remStart).Append (" +").Append (insStart).Append (",").Append (insEnd - insStart).AppendLine (" @@"); WriteHunks (qh, baseDocument, changedDocument, sb); remStart = System.Math.Max (1, next.RemoveStart - next.Context); @@ -544,8 +544,8 @@ namespace MonoDevelop.Ide.Editor.Util current = next; } - if (qh.Count != 0) { - sb.AppendLine ("@@ -" + remStart + "," + (remEnd - remStart) + " +" + insStart + "," + (insEnd - insStart) + " @@"); + if (qh.Count != 0) {
+ sb.Append ("@@ -").Append (remStart).Append (",").Append (remEnd - remStart).Append (" +").Append (insStart).Append (",").Append (insEnd - insStart).AppendLine (" @@"); WriteHunks (qh, baseDocument, changedDocument, sb); } return sb.ToString (); |