1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

It feels laggy, and there seem to be too many request. What can be done?

Discussion in 'XenForo Pre-Sales Questions' started by tenants, Jul 28, 2011.

  1. tenants

    tenants Well-Known Member

    I've had a go of the demo and played around
    I've also seen some plugins

    The forum style and layout looks great, and I really want to buy it (it looks so modern)
    But I also want speed and I'm nost sure xenforo is really designed for that

    I've checked pingdom tools:
    Compared to a myBB forum I've just optimised:
    (this isnt completely fair, since the optimised myBB forum doesn't have any posts) << note this is an customised myBB forum (the standard myBB forum is no where near as fast, but I'm not trying to compare this to myBB, I'm trying to demonstrate how a fast forum could be designed)

    There looks like there are a lot of images that could be / should be sprited
    Using a cdn newtwork (for jquery etc) is a good idea that I see you can do, but the css and some images seems to be php defined

    Ideally I want to have:
    1) only 1 (non cdn) js file per page (minified) >> so I would want to be able to combine and minify the js (then change the templates to refer to this)

    2) 1 minified css file per page (with the current design, I'm not sure this is going to be possible, you link to css that is created on the fly by a php file.. which would be great, yet you seem to link to more than one css file per page

    3) As few images on the page as possible (I can sprite what I can, so this should be possible)
    A page should never need to contain more than a few [vertical repeated images all sprited as one image , horizonal repeated images all sprited as one image, single unit icons sprited + other larger non sprited images]

    are all these things going to be easy to do, and would I get any support doing them
    (I've done them for a stripped dowm myBB forum.. which is now really fast)

    4) Some of your images are sent though php script, spriting these is going to be an additional problem, has anyone had success?

    5) Additionally, there sometimes seems to be a lag with using the Editor.. when I type it gets a little unresponsive (using this community forum)
    >> type something then delete it then type again (I'm using FireFox which a lot of people use)
    Is there anything that can be done to avoid this << note, this one might have just been due to my sessions (I've killed my browser completly, restarted it and it seems less laggy now, but I had only noticed it after playing around with this forum)

    The yslow and google speed scores are quite low (even with the performance plugins)
    I'm not too fond of plugins since they often require another query, so I dont mind doing customisations (anything less than a g score of 95 and I think there is still work that should be done). Has anyone had success with fully optimising thier forum for performance
  2. Onimua

    Onimua Well-Known Member

    Does it not seem speedy to you here? o_O Any faster and XF will be pulled over and given a ticket.
    Bob, iTuN3r and Peggy like this.
  3. brendanc

    brendanc Active Member

    Numbers don't lie, but I've not had any slowness issues with XF at all. You might be able to greatly optimize the speed by doing your own server-side optimizations such as APC or memcache as well as (if you're using it) Apache prefork optimizations.

    As far as assets, you could always move that stuff off to a cdn to reduce load times.
  4. matthewalan

    matthewalan Active Member

    I've personally never seen any speed problems. In fact, I run XF on shared hosting and it's lightning fast. It's way faster than any other forum I've ever ran. I'm not at all saying your results are off, but I'm just saying that personally I think it's pretty darn fast.
  5. Panupat

    Panupat Well-Known Member

  6. Xarcell

    Xarcell Well-Known Member

    I'm surprised you think xF isn't speedy. It's by far the fastest forum software I've ever used. I mean, it's speed really shines in my opinion.
    CapnLuffy, Onimua and iTuN3r like this.
  7. iTuN3r

    iTuN3r Well-Known Member

    lmao xenforo and laggy are you kidding me ?
    CapnLuffy likes this.
  8. tenants

    tenants Well-Known Member

    It's the number of request that really bothers me (Which I will need to bring down) ..
    [See the first two links to view the number of requests]
    There are many js files, css files and images (that could/should be sprited)

    Often forums have a Lite/archive mode (which is basically just the text, but also duplicates the forum), these will do well is search engines (since larry Page has a strong belife that browsing the internet should be like turning a cover of a magazine) ... So when people visit the content of the foums, they often visit the "Archive Page" rather than the actual forum (this is sometime counter productive...since these people don't join, they just lurk)

    ... I'm one of these people that dont think the Archive page is nessasary. If you can reduce the number of requests on your forum, you can increase the google pagespeed / yslow scores and have a good chance of doing as well as a non-script heavy environment. Reducing the request will have a signinifican impact on perfomance, so users will benifit...

    I'm not sure how easy xenforo is going to be to sprite/css combine / js combine / minify everything / and move all the scripts to load just before the end of the body (I see some of the scrips are already down there). Customizing xenforo to get pagespeed scores of > 95 and yslow scores > 95 will be hard, I don't mind a challenge, but don't want to try the impossible
  9. Brogan

    Brogan XenForo Moderator Staff Member

    You can do some of that, I think some already have, but most users really care very little for that sort of thing.

    In fact, I have an inkling less than 0.5% of the members of my site would have any idea what pagespeed and yslow are, and I suspect it's the same on most other forums.

    All they care about is the experience when using the forum, and with posting rates up 7 fold since switching to XenForo, that's all the proof I need that the software works.
  10. Xarcell

    Xarcell Well-Known Member

    Yes, alerts help keep your user's engaged and coming back.
  11. tenants

    tenants Well-Known Member

    I agree that most forum communities dont know about pagespeed / yslow, but I think when they feel the benefit of a forum that is designed with performance it mind, they all care about it (even if they don't know that they do)
    ... The tiniest of tweaks can make a forum feel so much faster. The faster it feels, the happy you keep the users

    ... I like working on performance, and I like getting things to the absolute peek that they can be (with customization). << I'm a design performance freak
    ... But I think I might have my work cut out for me with xenforo
  12. Onimua

    Onimua Well-Known Member

    I'm unsure what your approach to XenForo is. It's built with speed and efficiency in mind from the bottom up, and large boards are dealt with easier on XenForo than other competing software, with 1.1 being even better with that.

    XF is fast, with no lag between user action and server response. I agree with making things as fast as possible, but your responses make it seem like XenForo is a snail and that it's laggy. :confused:
  13. Brogan

    Brogan XenForo Moderator Staff Member

    I think I know where tenants is coming from.

    I used to be the same with my AV (home theater) system; constantly calibrating, tweaking and optimising it, for hours and hours every week. So much so I never had time to actually watch a movie on it, or listen to a CD.
    Eventually I just stopped doing that and just started using it.

    When you get involved with a specific area which interests you, it's hard to step back and just use it as it was intended.
  14. tenants

    tenants Well-Known Member

    No, not at all... its as fasts as many of the other forums. But it doesn't look very easy to customise due to the way the css, images and js are called via php script...

    I'm possibly going to have to dig in to the php and completely understand the model in order to build up and optimised 1 jss / css file per page
  15. tenants

    tenants Well-Known Member

    That's exactly it... I'm fanatical about tweaking for performance (possibly are a rare and strange bread.. and not your target audience ;) ) ... But I dont want to just use it, I like tweaking. Even if the AV is great, you can have a lot of "fun" learning how things work, how you could improve on it, how you could "do things better :D" ... And I just like the idea of having the most optimized forum that there is (even if its not on a super fast server)
  16. Mike

    Mike XenForo Developer Staff Member

    The Pingdom tools outputs are misleading, as there are various elements that they've downloaded that the average browser won't download because the CSS isn't necessarily referenced by the HTML (eg, overlay-close.png). This happens with a number of the images: they refer to images that relate to overlays. While this isn't necessarily spec-defined behavior, it is the norm. You can see it clearly with the dev tools of several browsers.

    The Pingdom results appear to be based on "static" analysis, rather than browser behavior. The rgba stuff is a good example of that. Here's the code that triggers that image:
    background: url(rgba.php?r=0&g=0&b=0&a=153); background: rgba(0,0,0, 0.6);
    Browsers that support rgba natively (it's not supported by IE6/7 and possibly 8; don't remember off hand) will get the image form. This allows them to support something that they can't handle otherwise. Take out alpha channel rules and you won't see those references. But additionally, browsers that do support rgba natively won't even try to download the image. (Firefox never has; old versions of Chrome used to but don't appear to any more.) Further, this output has a far-future expires setting, so if needed, it's only downloaded once.

    Regarding CSS, you'll only ever see 2 requests per page. The first is always the same, everywhere. This is requested once and never again (unless it changes). The second loads page specific CSS and it too is cached, but the URL will often differ. If you wanted to reduce this to 1 request, I imagine you could, but it's just going to hurt cache locality. Every time there's a different included bit of CSS, you'll be forcing the user to redownload the entirety of the base CSS. So it's an extra request on the first view leading to larger savings on subsequent views.

    You'd have to hack things up to fold the JS together, at the expense of cache locality. In an average production case, you can far-future-expire the whold JS.

    Image usage/spriting is something we're looking at. It does improve performance as you said, though it can make customization more of a challenge. Gradients can be sprited, but only in certain circumstances (which are hard for us to guarantee, given the wide range of changes that people make).
    Walter and Brogan like this.
  17. tenants

    tenants Well-Known Member

    Lots of the JS isnt needed when off line.. and there are many images that could be sprited, all of the script and css could/should be minified.
    This is where I'll start

    I'm inclined to agree with you about the 2 requests for css, it isnt bad at all. If you have on globall css and one specific then its a good design (although, couldn't the specify one be internal if its only small to reduce the number of url requests)

    I don't disagree with your statement about pingdom, but its a quick way to get an idea/over view and be able to show other users
    I could have referred to the online page rank tool: http://pagespeed.googlelabs.com/#url=http_3A_2F_2Fxenforo.com_2Fcommunity_2F&mobile=false (81/100)

    I use a few performance tools (pingdom is just easy to point to), but its not always "just" and grabs more than its fair share of what it should/could...
    But it still exposes that there are many requests which can be reduced:

    Total objects:
    38 (479.6 KB)
    External objects:
    2 (78.6 KB)

    Even if there aren't 38 usually, it does demonstrate there are a lot (and probably over 35 total object on most browsers)

    I want to get this down to < 15 total objects (you might laugh at me and wonder why... but it's what I do). Reducing these request will have a significant performance impact (a faster server might be easier... but I like redesigning for performance)
  18. ankurs

    ankurs Well-Known Member

    let us know, once you have it redesigned :)
  19. tenants

    tenants Well-Known Member

    Oh.... 6 months from now I'll have a pagespeed score > 95, no visitors, little content, the big board members will all hate me for bragging on my "fast design",
    but at least I'll be happy doing the tweaks

    Sure I can do that
  20. RobParker

    RobParker Well-Known Member

    XF scores considerably higher on Google Speed Test and yslow than my VB sites does. It also feels far faster.

    I have minified the JS using XFOptimise which did help a bit.

Share This Page