Performance Improvement

General Discussion
  • These are the major ones that seems to get bad marks

    Serve scaled images
    Defer parsing of JavaScript
    Leverage browser caching
    Minimize redirects
    Remove query strings from static resources
    Make fewer HTTP requests
    Add Expires headers
    Minify JavaScript and CSS

    Any plans to improve these? Any suggestions/tips to try?

  • No to do list for next version of nodebb?

    Any comment on these improvements?

  • I am wondering if this post should be in a different category? Anyway, it would look great if a core community member could comment here...

  • Many of those we already do, or are on the to-do list.

    Is there any thing in particular you think is causing issues?

  • @zoharm said in Performance Improvement:

    I am wondering if this post should be in a different category? Anyway, it would look great if a core community member could comment here...

    Can someone move to correct category?

    @yariplus said in Performance Improvement:

    Many of those we already do, or are on the to-do list.

    Is there any thing in particular you think is causing issues?

    Can you share where this list url is located so the community can follow?
    I see them for other projects but can't locate one for nodebb.

  • @charles Other than the github issues list, there isn't an official list.

    I would put any specific performance problems you are experiencing in a github issue.

  • A few of these optimizations can be realized by the use of PageSpeed for your webserver.

  • Serve scaled images

    Done, uploaded images are resized on upload if they are too large (this is not configurable at the moment)

    Defer parsing of JavaScript

    Not possible at this time. NodeBB requires a specific order in which to load its js assets, and they are done in the header right now.

    Leverage browser caching

    We do this.

    Minimize redirects

    What does this even mean... :shipit: When we redirect people we send them to the new link, with no intermediate steps.

    Remove query strings from static resources

    We enforce our own cache buster because browser cache can be stale. So yes, we hae query strings on static resources, but this does not negatively affect your browsing experience.

    Make fewer HTTP requests

    Another vague request... we minify js and css to reduce HTTP requests.

    Add Expires headers

    Yes.

    Minify JavaScript and CSS

    Yes.

  • @julian said in Performance Improvement:

    Serve scaled images

    Done, uploaded images are resized on upload if they are too large (this is not configurable at the moment)

    Defer parsing of JavaScript

    Not possible at this time. NodeBB requires a specific order in which to load its js assets, and they are done in the header right now.

    Leverage browser caching

    We do this.

    Minimize redirects

    What does this even mean... :shipit: When we redirect people we send them to the new link, with no intermediate steps.

    Remove query strings from static resources

    We enforce our own cache buster because browser cache can be stale. So yes, we hae query strings on static resources, but this does not negatively affect your browsing experience.

    Make fewer HTTP requests

    Another vague request... we minify js and css to reduce HTTP requests.

    Add Expires headers

    Yes.

    Minify JavaScript and CSS

    Yes.

    You can check many of these here

    http://tools.pingdom.com/fpt/ea0KAu/https://community.nodebb.org

  • @julian said in Performance Improvement:

    Serve scaled images

    Done, uploaded images are resized on upload if they are too large (this is not configurable at the moment)

    Nice

  • @julian does the resize happen even if you are using image upload plugin like imgur?

  • @julian Sorry not sure what some of those things mean since I'm just copying the details and grades from gtmet testing

    Serve scaled images (F)
    Defer parsing of JavaScript (D)
    Leverage browser caching (C)
    Optimize images (C)

    Add Expires headers (F)
    Make fewer HTTP requests (F)
    Use cookie-free domains (F)
    Reduce DNS lookups (C)
    Minify JavaScript and CSS (B)
    Avoid URL redirects (B)

  • @charles as said. Try to use PageSpeed 😉

  • @AOKP said in Performance Improvement:

    @charles as said. Try to use PageSpeed 😉

    i use pagespeed and performance is similar
    grade C as it was posted earlier

  • Leverage browser caching
    Add Expires headers

    assuming you run nginx or apache as proxy you probably configure it to send cache headers for files that are static

    Minify JavaScript and CSS

    nodebb does this already, if this shows up for your forum its probably caused be either a plugin you installed or any custom css/script

    Any plans to improve these? Any suggestions/tips to try?

    the rest is rather, well expected, and most bigger websites that you test will have the exact same issues. mostly sideeffects of the modern web being javascript/css heavy and using libraries from multiple sources

    though i would like to see an option to host external sources the default themes use on your own server, right now that involves a lot of manual work

    Make fewer HTTP requests

    http2 to the rescue! seriously try it out

    edit: so i checked google pagespeed for my site and the community forums, link for the people that are interested:
    my site
    this site

    honestly nothing too bad, but I opened two issues for things that should be an easy fix on the nodebb end
    use mousetrap.js minfied
    minify composer.js

  • @phit said in Performance Improvement:

    Leverage browser caching
    Add Expires headers

    assuming you run nginx or apache as proxy you probably configure it to send cache headers for files that are static

    Minify JavaScript and CSS

    nodebb does this already, if this shows up for your forum its probably caused be either a plugin you installed or any custom css/script

    Any plans to improve these? Any suggestions/tips to try?

    the rest is rather, well expected, and most bigger websites that you test will have the exact same issues. mostly sideeffects of the modern web being javascript/css heavy and using libraries from multiple sources

    though i would like to see an option to host external sources the default themes use on your own server, right now that involves a lot of manual work

    Make fewer HTTP requests

    http2 to the rescue! seriously try it out

    edit: so i checked google pagespeed for my site and the community forums, link for the people that are interested:
    my site
    this site

    honestly nothing too bad, but I opened two issues for things that should be an easy fix on the nodebb end
    use mousetrap.js minfied
    minify composer.js

    55 mobile and 63 on pc isn´t good results

  • @exodo said in Performance Improvement:

    55 mobile and 63 on pc isn´t good results

    the only reason it's so low is that javascript is being loaded first
    those numbers are useless, the render blocking is by design since the forum html is loaded via javascript

    I guess some things should get moved further down in the document though that aren't needed to render the page

    @julian said in Performance Improvement:

    Defer parsing of JavaScript

    Not possible at this time. NodeBB requires a specific order in which to load its js assets, and they are done in the header right now.

  • I agree with @exodo that score of 57/79 and 53/79 (nodebb) doesn't look very good. For some that are judging based on these scores, they would skip and use another app.

  • @charles said in Performance Improvement:

    I agree with @exodo that score of 57/79 and 53/79 (nodebb) doesn't look very good. For some that are judging based on these scores, they would skip and use another app.

    I think judging based on those benchmarks alone isn't a great way to determine which software to use.

  • @teh_g said in Performance Improvement:

    @charles said in Performance Improvement:

    I agree with @exodo that score of 57/79 and 53/79 (nodebb) doesn't look very good. For some that are judging based on these scores, they would skip and use another app.

    I think judging based on those benchmarks alone isn't a great way to determine which software to use.

    Yes I agree. When I ask several people to give NodeBB a try as their main app, they first go and check the grades

    They sent me this (first one is NodeBB) and said, "why would you use that?"

    0_1473175888640_comparenodebb.png

    If I can't even get them to try it, think about others that are also check the grades? This is the same with wp themes that have poor scores. People just skip over them and not use them on sites because they want good grades.

    It's hard to get people to look past certain things even after they decide on another app.

    Just sharing


Suggested Topics