Profile/Dashboard (not river) Slowdown


I'm not sure if this really an appropriate place to ask, but if it's not, you may feel free to set mutant ninja pirate eels with laser-eyes on me.

I have a fairly big issue with my elgg site. I have prodded and poked and picked at things constantly for the past week trying to figure out the cause, but I've had no luck.

The problem is this:

Dashboard and profile pages are SLOW. Not slow to open, not slow to load. They are nearly impossible to navigate in Opera, and awfully sluggish in Firefox and IE. Poking around other people's elgg sites shows me that this is not merely a case of having a lot of widgets - I signed up for someone else's and crammed every widget they had on to the page and still didn't get the same slowdown. Nor anywhere near it.

Things affected are as follows:

* Widget edit box - opens jerkily, is difficult to place widgets because the dragging action is also jerky

* Scrolling is jerky

* Links take up to two seconds to highlight on mouseover

* Topbar menus open jerkily; links here are also slow to highlight and are not clickable until they do

vazco suggested that I had a bad widget in there somewhere causing the issue, but I've taken every single widget off my dashboard and it's an on/off thing: no widgets = fast, any widgets = slow.

I've tried: throwing PHP some extra RAM; blaming France (haha, just kidding); ensuring the mysql database is properly optimised; adding more RAM to the server (had to do this anyway); staring at various widgets' code to attempt to find any obvious issues that need fixing; tinkering with load order...

Has me stumped. :|

Any ideas?

Site is here if anyone wants to see what I mean.

  • Rats. Looks like there's no human-readable (that is to say, obvious) distinction between dashboard widgets and profile widgets. They're all named 'handler' with the value being the widget name. Looks like I'll have to cleansweep after all, unless anyone else has an idea.

    And yep, I'm still learning myself, Nospheratt! :) Fun, though.

  • Correction: they ARE distinguishable, but it would involve me writing down a whole lot of GUIDs... and probably fighting a losing battle.

    This is confusing, though. I know there are elgg sites with a LOT more users than mine has, and presumably, a lot more widgets. My testsite experienced NO slowdown no matter how many widgets I piled onto a single user account... this suggests there's something else wrong, because how has it not occurred elsewhere, on other sites? o.o


  • Well, I don't think it has to do with the number of widgets - not necessarily, anyway. Have you checked elgg's error log, and the apache log? Also, I would try turning on the debug mode, and see if it spits out anything that could explain what's happening.

  • I don't see how unused dashboard widgets could affect this. You've said the problem is not page generation, but in the browser (Opera, FF, IE). Did you try profiling the code in Firebug? Did you check processor/memory usage on your browser computer? Did you incremently turn off different javascripts (starting with TinyMCE if you're using that plugin)?

  • I agree totally! I don't see how it could possibly have had anything to do with it. But apparently, killing those widgets = faster all round. Load times have decreased for single pages from around ~6 seconds to 3-5 seconds. The topbar isn't as jerky even on profiles fairly heavy on widgets (although it is still slightly jerky ... strangely, I think it's the messageboard plugin causing it - jerkiness vanishes when that widget is removed). But it's extremely minor compared to what was happening before.

    TinyMCE is turned off; yes, And I've used Firebug to profile the code; the only issue it finds is in jquery. Which came with elgg, and is thus also present on my test server ... where I couldn't reproduce the profile issue. It's a bit confusing and strange, to be honest. :/

    Memory is not an issue on my browsing machine. I have 8 gigabytes of RAM (obviously, running a 64bit OS).

    I'm not getting how the redundant widgets were causing it, either, but it seems to have helped enormously all the same.

  • Okay. Had a backup of the database, so did some edits to make it fit the test server, imported it, and did some digging around.

    This time, I managed to reproduce it. Two things appear to have combined. First, the redundant dashboard widgets. Second, a plugin: profile_up. When there were few widgets on site, profiles were fast and fine. Add a lot... and it slows down. Turn off profile_up, it's fine both ways.

    On the upside, most of my users are pretty lazy and hadn't actually bothered to change from the default widgets I had set up. Problem is 100% fixed on the production server now, and on top of that, they're all now playing around with the widgets, at last.

    I couldn't find the issue before in Firebug, though, which is strange to say the least.