Q42 / TrelloScrum

Add Scrum to Trello
https://chrome.google.com/webstore/detail/jdbcdblgjdpmfninkoogcfpnkjmndgje?hl=en-US&hc=search&hcp=main
MIT License
451 stars 171 forks source link

TrelloScrum makes Firefox slow #78

Open andreicristianpetcu opened 9 years ago

andreicristianpetcu commented 9 years ago

Hi,

Firefox Nightly has a new fancy feature that shows what plugins make it slow. It started complaining about TrelloScrum among others. Please check it out! I disabled a handfull of plugins (including this one) and now FF is very fast. This feature will land in Firefox 38 (I think) so users that use the stable FF will start to complain in April. Check out this calendar https://wiki.mozilla.org/RapidRelease/Calendar#Future_branch_dates

Here is the FF feature in bugzilla https://bugzilla.mozilla.org/show_bug.cgi?id=1071880 I don't think TrelloScrum makes only FF Nighlty slow, I think it makes all versions slow but Nightly shows a message to the user.

Thank you for building this addon!

eterps commented 9 years ago

It definitely makes Firefox 36 slow. Just disabling TrelloScrum reduces CPU usage by an order of magnitude.

SeanColombo commented 9 years ago

Just wiggling my mouse around on Trello (specifically when it goes over cards) makes the CPU spike in Firefox. It looks like it might be slower with the extension enabled... will dig into it...

SeanColombo commented 9 years ago

I've poked at it more & can't find a correlation (at least in Firefox 36.0) between the extension being enabled and CPU usage. Once a Trello page loads, the CPU is high for a while until it calms down. A while after the page loads, my CPU usage (on a fairly old computer) drops to low single-digits and stays there. I can mouse around in the empty area of the board, but when I mouse around over actual cards (which causes them to change highlight a bit), the CPU spikes to 40-60%. Having the extension enabled or disabled (I'm using ScrumForTrello v1.91) doesn't seem to be able to affect the numbers at all.

If everything is working as designed (which obviously is NOT a given), the extension should only be using noticeable CPU when the DOM changes since it's using the Firefox-endorsed MutationObservers to listen for changes.

@andreicristianpetcu I've left a comment on the bugzilla Bug to get more info. If the CPU spike only occurs when the DOM is modified, then I'll have to start shaving the yak, but I'm not sure we'll ever be able to get it below whatever their threshold is. If the CPU issue is on-going during idle-time, then there is likely a significant bug we can fix in the Firefox version of the extension. If you happen to already know which is the case for CPU usage, please fill me in. :) Thanks for reporting the issue!

andreicristianpetcu commented 9 years ago

@SeanColombo Thank you for providing more info. When I first used the Firefox with the new version I disabled the "slow" extensions and reported bugs. Now I will enable again ScrumForTrello and tell you if I notice anything else. Apparently the ff devs plan to offer more info to extension developers about what makes it slow.

SeanColombo commented 9 years ago

@andreicristianpetcu oh cool, that'll be helpful. At the moment I'm a little in the dark, so I think I'll kick the can down the road a month or two until we get closer to the new release date in Mid-May. Hopefully their tools will have settled down a bit by then & I'll be able to get a clearer picture (and also, hopefully fix it before v38 goes live). Thanks again!

andreicristianpetcu commented 9 years ago

Glad to help! Thank you!

andreicristianpetcu commented 9 years ago

I have TrelloScrum enabled again on nightly and it complains that it makes my browser slow even on https://plus.google.com Can you please check if any of your plugin's code gets executed on other pages that are not related to Trello? Thank you!

andreicristianpetcu commented 9 years ago

My TrelloScrum is 1.92

tomweingarten commented 9 years ago

I'm also experiencing this same problem in Firefox 36 with the latest Trello Scrum. I've been really enjoying the extension, please let me know if there's any additional info I can provide to help diagnose the problem!

Stephen-Cronin commented 9 years ago

Hi All,

I've been having the same problems and found the following:

When I have the FireFox version enabled, Trello starts making calls to a URL starting with "https://trello.com/1/batch?urls=%2FMember%2F" every 3 seconds. This bogs down the entire browser. Once I disable this extension (and restart FF), Trello stops making those calls and everything is snappy again. Not sure what it is doing or why (it's getting info back about modelIxUpdate whatever that is).

Not sure what is causing that, but hopefully hopefully that will give someone an idea about what's happening...

alexmills commented 9 years ago

Also having the same issue, with the plugin enabled in Firefox 41:

screen shot 2015-09-03 at 9 57 49 am

And with it disabled:

screen shot 2015-09-03 at 9 56 58 am

And that's with the tab in the background, no user interaction.

andreicristianpetcu commented 9 years ago

Nightly with about:performance screenshot from 2015-09-03 09 44 40

pleinolijf commented 9 years ago

Same issue here on Firefox (regular update channel - currently 40.0.3). I had to disable the plugin, because it caused the browser to take at least +10% CPU pretty constantly, which in turn causes my laptop to turn up the cooling fan - making annoying noise. Note that this also happens when the Trello tab is inactive, even when I'm not using the browser. After a while it would temporarily settle down again, only to start again when I touch my browser. Now disabled, I haven't had the cpu load again. I don't see the big spikes when mousing over Trello cards without the ScrumForTrello add-on enabled, so I do believe it is the add-on that causes the cpu load (and sluggish browser behaviour). Additionally, I don't seem to remember that I had this problem in the past (couple of months back), I think it only started to pop up somewhere in August...

Hope this helps.

allanlaal commented 9 years ago

same issue on a Firefox 40.0.3

bbatha commented 8 years ago

Still an issue in firefox 41 and 42.

bardo commented 8 years ago

Confirmed for Firefox 42 on Arch Linux.

SeanColombo commented 8 years ago

This seems like a lot of reports, so I can assume this is a fairly consistent problem from Firefox ~40 upward.

I have a laptop with Firefox 42 and Windows 8 and I can get it to go up to around 4% CPU idling on a Trello board with a ton of cards. Without the extension it was idling between 0-1%. Although those numbers are fairly low, mousing around the board shows a ton of lag, there is a highlight on the moused-over card and that is WAY behind where the actual cursor is.

I used the "Performance" tool in Firefox to try to figure out where the lag is coming from. I started profiling, moused around for several seconds, then stopped it. The perf tool said there was an average of about 1.7 Frames Per Second during that time. During this time, 75% of the time is in jQuery.event.add/elemData.handle (which is a child of jquery.event.dispatch which is a child of jquery.event.fix).

I'm not sure what that's related to, but maybe it's just because I'm using a fairly old version of jQuery and they have a call in there which runs really slowly on the newer FF. jQuery is usually quite good at fixing that kind of stuff, so I'll think the next step will be to try a newer version of jQuery in the extension.

andreicristianpetcu commented 8 years ago

I'm enabling the extension again. I use the Nightly build :D 45.0a1 (2015-12-13) The way I remember was that it also made Firefox slow on other web sites when I had Trello closed or on a inactive tab.

SeanColombo commented 8 years ago

I upgraded jQuery, then tested the currently-released 1.95.2 and the new (upgraded jQuery version) 1.96.1.

The 1.95 version idles at 4%, and the new one idles at 1%, both when Firefox is focused. My Firefox has NO other addons and no other tabs open.

The one strange thing though, this board I'm testing on has a lot of cards and is EXTREMELY frustratingly slow even when I remove my extension (so this is completely bare FF w/no extensions & no other tabs open) so it seems like using Firefox for large Trello boards is not a good idea in general, but at least this extension won't be contributing to the problem once I push this update.

SeanColombo commented 8 years ago

The newer version (1.96.1) has been submitted to Firefox for review. Would love to hear how it performs for others: https://addons.mozilla.org/en-US/firefox/addon/scrum-for-trello/versions/?page=1#version-1.96.1

SeanColombo commented 8 years ago

Version 1.96.1 is now the official release version ( http://scrumfortrello.com/ ). Performance seems great for me.

Since so many people had the issue, I might wait for someone to confirm that it's better for them too, then close the issue. @andreicristianpetcu: how does it look for you?

andreicristianpetcu commented 8 years ago

@SeanColombo I just installed it, I do not have time to test it now. I will tell you in one or two days.

SeanColombo commented 8 years ago

@andreicristianpetcu awesome, thank you! :)

bbatha commented 8 years ago

The new version is faster than the old. But after a few minutes my ram usage starts to shoot up and firefox locks up occasionally while collecting gc cycles.

SeanColombo commented 8 years ago

@bbatha is this the same behavior you see without the extension though? I've noticed that Trello has some serious performance issues in Firefox (with no Add Ons installed and no other tabs open)... just want to get a sense of where the problem is.

bbatha commented 8 years ago

@SeanColombo no, trello is generally pretty snappy for me. Using the trello for scrum addon makes it markedly slower.

SeanColombo commented 8 years ago

@bbatha I'm having trouble reproducing that w/the new version... maybe it's the types of boards I'm trying or something? The boards that you're looking at: lots of cards or few cards?

bbatha commented 8 years ago

@SeanColombo I have 200+ cards in the board it seems to drag on a board with around 100 cards too. I haven't tried smaller than that.

SeanColombo commented 8 years ago

@bbatha The board for Burndown for Trello has 177 cards which is right in that same zone. The site is pretty responsive for most things, but really slow when mousing over cards (the backgrounds turn gray when you're moused over... they just do that much slower in Firefox than in other browsers) and this behavior is identical for me whether Scrum for Trello is enabled or not.

Just to make sure it wasn't all in my head, I ran the profiler for ~10 seconds with the extension disabled, and ~10 seconds with it enabled and looked at the results. All of the time in both appears to be spent in Trello code (the "cloudfront" lines are Trello code... they use cloudfront as their CDN): http://screencast.com/t/Tu2XZ3p6K If you expand the "Gecko" section on either side of the screenshot, they're both just 3 lines... all from Cloudfront also.

Not really sure where to look next. If you press F12 to pull up the profiler, are you able to get different results? Just to verify: are you testing this in Windows also?

Stephen-Cronin commented 8 years ago

It's looking good to me so far. I've had Firefox (on Win 8.1) open for about 6 hours and it's still working smoothly and it's not making those URL calls every 3 seconds like I reported above. I haven't been using it heavily, but in the past it would have been bogged down for sure by now.

Trello is slightly slower in general in Firefox than in Chrome, but there's a huge difference between that and what was happening before.

Thanks for making the change! :)

bbatha commented 8 years ago

@SeanColombo I'm on windows 7 64 bit with FireFox 43.0.2 64 bit. I also have trello running in a pinned tab, if that matters for anything.

Here are the profiler screenshots without Trello Scrum and with Trello Scrum. With trello scrum enabled my total firefox memory usage climbs around 100MB in under a minute. The performance and memory differences are most notable switching after switching boards. Without the addon after switching boards memory usage spikes and lowers a few seconds later, with the addon it never seems to be reaped.

I also restarted firefox between runs, if I just disable trello for scrum in the about:addons window it doesn't seems to help until I restart firefox. Both profiles were taken on a fresh run with the same tabs open.

andreicristianpetcu commented 8 years ago

It seems fine for me. I was only interested in CPU, not RAM. Also I had a problem that ScrumTrello seemed to be eating my CPU even when I was not using Trello.

The performance seems nice now. Thank you!

ghost commented 8 years ago

So we are in 2016 , and the problem still exist, i hope you find a fix for it. i appreciate all the effort you put into this. it's very important extensions.

SeanColombo commented 8 years ago

@minaaboud: this could be something different. From the comments in this thread, one person saw a memory issue still, but it looks like all of the CPU issues were sorted out. What's the problem that you're seeing, what OS is it on, and does it happen for all Trello boards or only when the extension is on? Thank you! :)

seidler2547 commented 7 years ago

I tried enabling the plugin today again on my Firefox 51 (Linux 64bit) and still it makes my browser very slow. It takes about 4-5 minutes until the CPU usage settles down, but then any action in Firefox, even scrolling this Github page up and down makes it spike to 100% CPU and very slow to use. I have uBlock origin installed but no other extensions. I actually need to restart the browser to make the lagginess go away.

seidler2547 commented 7 years ago

Here is a test case that makes it reproducible for me:

Measure CPU usage without plugin:

CPU usage with plugin:

This gives around 100% CPU usage increase on my machine (from ~20sec to ~38-42sec).

SeanColombo commented 7 years ago

@seidler2547 thanks for the info. So in your example, it doesn't seem to be like "leaking" CPU usage (eg: using it all the time for no reason), it just makes it take longer to load Trello pages, right?

For comparison: just opened it on FF51 on Windows. It loads almost immediately & CPU usage never goes to 100% (although I'm not sure the comment was claiming it goes to 100%, just rather that it's 100% higher with the extension during loading than without the extension during loading).

SeanColombo commented 7 years ago

@seidler2547 actually... followup question: your test-case makes it sound like a pretty minor difference in CPU usage, and only during page-load, but your original report indicated that it totally slammed your browser even on this github page. What do you think is causing the difference? Did you have several Trello tabs open in your normal environment?

seidler2547 commented 7 years ago

@SeanColombo it also uses CPU when no activity is happening, i.e. all the loading indicators in the tabs have stopped and I see the favicon, but top still shows a lot of CPU. It periodically (maybe every minute or so?) spikes to 100% for a couple of seconds (maybe when Trello reloads using AJAX?).

Letting it sit for some time (5 minutes or so) it used about 1m10s CPU time until it wasn't generating a lot of load anymore. Without the plugin it used only 25s (adding firefox and plugin-container CPU times).

It also seems that the plugin forces another process/thread model because when the plugin is enabled, I do not see a plugin-container process as is present without it.

It could be that because of this, the general slowdown of Firefox is more noticeable because the CPU usage affects the only Firefox process more than it would if there were two processes. But I can't tell for sure.

I usually have at least two Trello tabs pinned and sometimes an additional one open in my normal environment. I also have about 15-20 tabs open, 8 of them pinned and then some others. That is not a problem normally, it takes a minute or so to start but then it's very smooth.

It might be that if I wait 10 minutes or more that my normal browser profile would also settle down. I didn't have enough mental strength yet to go through this.

seidler2547 commented 7 years ago

Just to add, it also makes every new page load slower by the same amount, so in the new profile if I go and open a new page, it takes much longer.

So for example open http://www.heise.de in a new tab - without plugin: approx. 9s until loading indicator stops. With plugin: between 22s and up to to 35s (!!) until loading indicator stops, UI seems blocked at lot, loading indicator hangs a good number of times until it continues to spin.

seidler2547 commented 7 years ago

Looking even further into this, it seems that even just having this Trello board open: https://trello.com/b/nPNSBZjB/trello-resources in any tab makes even opening and closing a new tab a painfully slow experience. I can burn CPU cycles on end just by pressing Ctrl+T Ctrl+W.

SeanColombo commented 7 years ago

Dang. Doesn't happen in the Windows version (v51.0.1). Opened Trello-resources board and opened a ton of tabs. Sure, Firefox eats a few CPU % during the load but I can't see any lag visually :/ Will try to repro on my Linux box, hopefully tonight.

It also seems that the plugin forces another process/thread model because when the plugin is enabled, I do not see a plugin-container process as is present without it.

What can a plugin-developer do that can cause this? This extension is essentially a wrapped up user-script so fortunately the code isn't too complex. Hopefully we could find what's causing that.

I usually have at least two Trello tabs pinned and sometimes an additional one open in my normal environment. I also have about 15-20 tabs open, 8 of them pinned and then some others. That is not a problem normally, it takes a minute or so to start but then it's very smooth.

Yeah, that doesn't sound like it should be a problem. In Chrome I usually have like 7 Trello boards (each one as a tab) then another 150 tabs or so & I don't get a slowdown there. I'd hope we could accomplish the same on FF.

It might be that if I wait 10 minutes or more that my normal browser profile would also settle down.

Yeah, even if that's possible... if that's what it takes then we clearly have a problem to fix.

Thanks again for all of the info.

Laski commented 7 years ago

I can confirm this is still happening in Linux with FF 52.0

SeanColombo commented 7 years ago

@Laski I'm pretty slammed at the moment, so I don't have time to debug the issue in the Linux/FF version right now. The extension is pretty straightforward Javascript... if you manage to figure out what code is causing the problem in Linux/FF, I'll try to make a fix & get it out as fast as possible. Sorry that I can't jump on this more directly

bickycheese commented 7 years ago

I too can confirm I'm still having this issue but on Chrome. Incognito tab also uses 50-100% less memory and the non-incognito tab seems to be using more CPU (even when idle)..

SeanColombo commented 7 years ago

@stannynuytkens if you're seeing it on Chrome, that's a new issue for us. Are you on Win/Mac/Linux?

cflagg commented 7 years ago

I can confirm the TrelloScrum extension is significantly impacting performance on Chrome (Version 58.0.3029.110 (64-bit)) on my Windows 10 computer. The extension essentially makes Trello unusable, as the entire Trello board lags by 5-10 seconds in creating new cards, updating cards, and moving cards across lists.

Chrome CPU usage sits at around 3% for me until I open a Trello board, then CPU usage jumps to 30% and does not go down. Disabling TrelloScrum immediately reduces CPU usage.

SeanColombo commented 7 years ago

@cflagg thanks for the feedback! I use the extension on latest Chrome/Windows 10 every day and don't run into this problem. Is there anything unique about your board that might help me reproduce the problem? Eg: do you have 10,000+ cards on the same board... do you have more than about 10 lists, anything unique like that that might help me repro on my end as well? Thanks!

cflagg commented 7 years ago

@SeanColombo No prob. I have access to 30 boards (I work across multiple teams) that vary in their configuration. One board has 7 lists and a couple hundred cards (nothing archived). Another board has 11 lists and a couple dozen cards. On the minimal side, there's a 5 list board with 7 active cards. I experienced big slow downs on all of them.

One final detail I can think of is I turned on the "Burndown Charts" power-up at around the same time as TrelloScrum. I have two apps with access to my Trello boards, Burndown Charts and Trello for Android.

SeanColombo commented 7 years ago

@cflagg hmm, there's nothing that sounds weird about those boards. I also have the Burndown Charts power-up enabled on most of my boards. I'll have to dig deeper at some point. If you find anything specific that you think is causing it, please let me know!