fdorg / flashdevelop

FlashDevelop is a free and open source code editor.
MIT License
824 stars 220 forks source link

Progressively slower typing and text selection #1826

Open JoeCreates opened 6 years ago

JoeCreates commented 6 years ago

This is a very long standing issue for me and it makes using FlashDevelop very painful and I need to keep restarting my laptop to make it usable. I posted about it on the forums a good while back: http://www.flashdevelop.org/community/viewtopic.php?f=6&t=12953

As mentioned in the forum post, I had previously had no issue with this until an update to either 5.1 or 5.2.

I mainly use HaxeDevelop but I also get the issue regular FlashDevelop. Have tried uninstalling and reinstalling but to no avail.

Windows 10 2.4 GHz Intel Core i7-4700HQ (3.4 GHz Turbo) 4C, 8T nVidia GeForce GTX 850M with 2 GB memory, Intel HD Graphics 4600 8 GB 1600 MHz DDR3 RAM

Meychi commented 6 years ago

Your computer should not have any issues running FD. I think there is some bug with Scintilla editor control on your computer. Can you reproduce this issue on same FD setup on another computer?

JoeCreates commented 6 years ago

I do not have access to another computer that I can easily test on. The nature of this issue means that I might have to run flashdevelop for an extended time in order to see it.

soccerob commented 6 years ago

I have the same issue with my computer. After a restart, everything is super snappy and responsive. After several hours/days, it progressively starts getting worse until I can't stand it anymore and do another restart. I've tried just restarting FD but it doesn't improve the performance. Everything else on my computer is super snappy. It gets so bad, that eventually switching between files (Ctrl + Tab) becomes super slow, and pressing Ctrl + J to search for a file takes 5+ seconds before the search box shows up. version 5.2.0.3

here's a sample video https://www.youtube.com/watch?v=IDeOjB4XfEM&feature=youtu.be

jpmccfdl commented 6 years ago

This issue is a recurring one for some users I am currently supporting, they can work around it when typing/highlighting text though when it reaches an unbearable point the workaround is to restart their machines.

All users are on version 5.2.0.3.

Are there any other suggested workarounds to this issue at present?

Thanks

Hardware:
Dell Precision T7910, Windows 10 Build 1703, Intel Xeon E5-2640 v3 8-core 2.6GHz Turbo, 16GB DDR4 RAM, Nvidia GeForce GTX 1080 8GB GDDR5X

hachigoro commented 4 years ago

This has been an issue in our workplace as well, typing becomes sluggish sometimes. When doing some investigation apparently this is caused by this line in Settings\MainMenu.xml:

<button label="Label.Restart" click="Restart" flags="Enable:IsOnlyInstance" />

Removing that line fixes the issue. When text is entered (specifically, when a button is pressed) in FlashDevelop, the Scintilla control (which handles rendering text and code highlighting, etc.) fires off events that cause all the menu and toolbar items to be re-evaluated, presumably to react to any state changes invoked by a button press. As a part of revalidating these buttons, their flags are re-evaluated.

The problem comes down to the IsOnlyInstance flag, which is used to enable certain functionality (like the Restart item we removed) if there is only one instance of FlashDevelop running. When this flag is evaluated, a process search is performed to determine if there is only one instance running. This process search is not quick, possibly taking up to a few hundred milliseconds to complete.

So this happens every keypress… just for the sake of having the Restart menu item being properly enabled.

soccerob commented 4 years ago

I’ve been experiencing this issue for at least a few years. I vaguely recall enabling multiple instances, so I’ll check that on Monday when I am back in the office. I’ve resorted to restarting my machine every couple days once it gets bad enough that I’m ready to start cursing. Sadly, I’m nearing the end of my use of FlashDevelop as we have moved to other engines; so I’m not sure that I’ll be able to offer much input as to whether or not disabling multiple instances would fix it, but I’ll try.

hachigoro commented 4 years ago

I don't think there is a setting to enable multiple instances of FD, the check for multiple instances running always happens as long as there is a UI element with the "IsOnlyInstance" flag. I think that is why removing that line from MainMenu.xml helps with performance.

SlavaRa commented 4 years ago

Which version are you using?

hachigoro commented 4 years ago

Which version are you using?

5.3.3.1

SlavaRa commented 4 years ago

Can you try development-build from https://flashdevelop.org/downloads/builds/ ?

hachigoro commented 4 years ago

Right now running 5.3.3.1 I don't see much slowdown in my machine, but it is a pretty high spec one, maybe in older machines this could be more noticeable. Perhaps @soccerob could do a better test than me as he was seeing the problem recently.