mono / monodevelop

MonoDevelop is a cross platform .NET IDE
http://www.monodevelop.com
2.84k stars 1.02k forks source link

UnitTest text editor extension causes slowness in the IDE #5470

Closed Therzok closed 6 years ago

Therzok commented 6 years ago
MonoDevelop.UnitTesting.UnitTest.get_StatusIcon() in /Users/therzok/Work/md/monodevelop/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs:209
MonoDevelop.UnitTesting.AbstractUnitTestTextEditorExtension.UnitTestMarkerHostImpl.GetStatusIcon(string unitTestIdentifier, string caseId) in /Users/therzok/Work/md/monodevelop/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs:157
MonoDevelop.SourceEditor.UnitTestMarker.DrawForeground(MonoDevelop.SourceEditor.ExtensibleTextEditor editor, Cairo.Context cr, Mono.TextEditor.MarginDrawMetrics metrics) in /Users/therzok/Work/md/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/TextMarker/UnitTestMarker.cs:105
Mono.TextEditor.ActionMargin.Draw(Cairo.Context cr, Cairo.Rectangle area, Mono.TextEditor.TextDocument.DocumentLineFromTextSnapshotLine lineSegment, int line, double x, double y, double lineHeight) in /Users/therzok/Work/md/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/ActionMargin.cs:92
Mono.TextEditor.TextArea.RenderMargins(Cairo.Context cr, Cairo.Context textViewCr, Cairo.Rectangle cairoRectangle) in /Users/therzok/Work/md/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/TextArea.cs:2237
Mono.TextEditor.TextArea.ExposeEventInternal(Gdk.EventExpose e) in /Users/therzok/Work/md/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/TextArea.cs:2315
Mono.TextEditor.TextArea.OnExposeEvent(Gdk.EventExpose e) in /Users/therzok/Work/md/monodevelop/main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/TextArea.cs:2293
Gtk.Widget.exposeevent_cb(System.IntPtr widget, System.IntPtr evnt) in /Users/builder/jenkins/workspace/build-package-osx-mono-pullrequest/pr/external/bockbuild/builds/gtk-sharp-None/gtk/generated/Widget.cs:1349
Gtk.Application.gtk_main() in 
Gtk.Application.Run() in /Users/builder/jenkins/workspace/build-package-osx-mono-pullrequest/pr/external/bockbuild/builds/gtk-sharp-None/gtk/Application.cs:145
MonoDevelop.Ide.IdeApp.Run() in /Users/therzok/Work/md/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/Ide.cs:456
MonoDevelop.Ide.IdeStartup.Run(MonoDevelop.Ide.MonoDevelopOptions options) in /Users/therzok/Work/md/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:332
MonoDevelop.Ide.IdeStartup.Main(string[] args, Xamarin.IdeCustomization.XamarinCustomizer customizer) in /Users/therzok/Work/md/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:734
MonoDevelop.Startup.MonoDevelopMain.Main(string[] args) in /Users/therzok/Work/md/monodevelop/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup/MonoDevelopMain.cs:39

One main callstack

VS bug #652665

Therzok commented 6 years ago

Seems like we're re-creating the markers on every other keypress: http://source.monodevelop.com/#MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs,102

Therzok commented 6 years ago

Maybe we should be registering an IIncrementalAnalyzer which looks for methods and adds the markers.

xamarin-release-manager commented 6 years ago

Fixed in version 7.8.0.437 (master)

Author: Mike Krüger Commit: 8a15f7d9ebf9a8c50904b39dcdde660aa1a07b02 (mono/monodevelop)

xamarin-release-manager commented 6 years ago

Fixed in version 7.7.0.1291 (release-7.7)

Pull Request #5923 merged by: Lluis Sanchez Author: mono Commit: 00737c00cfbdd6c7958019448671d05273e4da4b (mono/monodevelop)