By Josh Lewis on Saturday, 11 October 2014
Posted in General Issues
Replies 79
Likes 0
Views 1.7K
Votes 0
This post is not meant to be a complaint, again I'm truly thankful for the work you guys do. I noticed that the ES component seems to load the slowest through out the site. It loads in about 4-6 seconds which isn't too bad but it would be cool to speed it up some how. I got the rest of my test site to run faster by installing jch optimize (I set it up to not cache 3rd party components and have it configured to seemingly not conflict with JS files). Without jch ES doesn't load any faster. I am also using lazyload for images except for the frontpage and ES.

Compare a article loaded with images vs my profile which you will notice the difference. I am on a shared hosting provider which I know isn't the best. I also know a lot of queries go into running the stream of ES's profile which is why it makes sense to me that this situation can happen. I've read through some threads on here but admit there could be things I'm lacking. Some day I plan on going the dedicated server route when I have more money which is going to be a long time.
Hello Josh,

I have disabled some of these plugins on your site and your page load is now down to 2.x seconds

- System - JCH Optimize
- System - JCH Optimize
- System - Lazy Load for Joomla!
- System - Kunena Forum
- System - JCK Typography
- System - Title Manager

Why are these plugins causing so much delays on the page load for EasySocial? It's because some of these plugins are actually doing a search / replace on the entire document (page) HTML codes. Since EasySocial uses a lot of HTML 5 data attributes (Which is the way to go), it becomes a bottleneck for these plugins since they are trying to do search / replace operations on the html .

It's like buying a Ferrari but you are using a bad fuel for your Ferrari in that sense, you don't get to fully harness the power of the v8 or v12 Or going hiking (Even though you are a great hiker), using a bad gear for your hiking
·
Saturday, 11 October 2014 18:11
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks Mark for evaluating this. So what do you recommend as the best choice for optimization for the rest of the site? System Kunena is required to work the Kunena forum, but I am however able to turn off integration Kunena (The ES one can take over eventually) which is probably an alright compromise. JCK topography is certainly not needed. If you don't mind I'll try to divide up the plugins so that we can approach each issue individually:

JCH Optimize: From what I understand it's ideal to have your CSS compressed, possibly your JS if it doesn't create any issues. The plugin has two helpful settings Exclude extensions from Javascript aggregation and Exclude extensions from CSS aggregation which allows me to select ES. I would think that this would solve the issue on ES pages, but I suppose I may be wrong. Any suggestions? Perhaps a method you use for file compression?

LazyLoad: My Joomla articles use a lot of images for showing off the scenery/info scenes which is why I use LazyLoad. It has an option to exclude from components, I selected com_easysocial which disabled it from running on ES pages. Would this still slow down ES? Or is it the fact that it's a running plugin?

Title Manager: I don't need this if I can resolve one little issue. How to remove the html title from a menu item? As in have it display the sitename without the menu item title. I'm wanting to display on my frontpage in the HTML title "Mountains, Trails, & Climbs : Alpine Ascent". I did a full investigation into this and could not find anything except for the title manager plugin. You might ask why not have the two separate (one in the menu item title)? The keywords are used on other pages so that it says something like "Mount Pilchuck Trail : Mountains, Trails, & Climbs : Alpine Ascent". This is for SEO purposes to generate relevant keywords.

I should also ask, do you have a preferred method for clocking page load time? I try to use as few of extensions as possible, I disabled some more since you last took a look. My ideal website is a bit complex which is why I'm very much appreciative of EasySocial (well more reasons than that too). Your help here is greatly appreciated.
·
Sunday, 12 October 2014 10:53
·
0 Likes
·
0 Votes
·
0 Comments
·
My best tip is consider upgrading to a VPS and put NGINX, MariaDB, Ngx_Pagespeed on it. I tried optimizing with plugins, but I found that they increased Waiting time on load and actually slowed things down further. You gotta do your optimizations on a server level if you want real tangible results.
·
Sunday, 12 October 2014 14:22
·
0 Likes
·
0 Votes
·
0 Comments
·
I'm a poor lad right now. I have a little over $20 to my name. I'm currently injured in multiple places which will make it difficult to get work at the moment. I can finally start using two hands to type with (not all fingers yet). Good advise though, page speed seems to be highly recommended. In two weeks I will most likely not need my cast on one hand and sling for the other arm.
·
Sunday, 12 October 2014 14:44
·
0 Likes
·
0 Votes
·
0 Comments
·
Ah, sorry to hear that. Get better mate. That said, how much do you pay a month for shared hosting? the most basic DO and Linode packages start around the 5 dollar mark I think. I believe Digital Ocean has one for 5 dollars a month, and Linode one for 10 dollars a month. So it might be worth making the switch, and upgrading to your desired package later. I know with Linode everytime I upgrade to the next package all I have to do is press the upgrade button and within 20min everything is migrated over.

If you stay on shared hosting, I recommend skipping LazyLoad and using good caching instead (I found that it slowed the site down rather than speed it up). Ask if your host supports APC. In terms of JCH Optimize, use it for CSS only. In my tests the moment I used it to handle Javascript the wait time went up. Also skip defer javascript... if you want anything of that nature, then maybe use the Asynchronous Javascript feature instead.

A tip on how to decide what compression to use and what not to use... check GTMetrix... but DONT check the score... check the timeline. Look at waiting time. Notice how without JCH Optimize it might be between 200-500ms and once you enable JCH Optimize it might go up to 1-2 sec. You want that number as low as possible, because if the site is cached, then that number determines how fast the server is able to communicate with the client.

With mod_pagespeed you can get a good score with low wait time.. but with JCH it tends to be one or the other... Unless you strategically disable the heaviest features...
·
Sunday, 12 October 2014 15:02
·
0 Likes
·
0 Votes
·
0 Comments
·
I can spare $10 per month in a few months once my hosting bill comes around. I have a web project that I'll get $300 for coming up. I'm currently living with my family, so don't worry about that end. Linode is looking quite promising, was just looking at it in the server cost thread. Will have to look into APC.

I used GTMetrix before starting this thread, perhaps I was being a bit of a sketic with it. If I understand correctly it's counting the page time after everything loads instead of once the main content is visible? I assume Google ranks based on initial load? I tried other code compressors but usually came into trouble with the page, JCH seemed to be one of the friendlier ones. So I take it JS compression is not a common tactic for gaining true page speed?

I greatly appreciate the time and careful thought you put into your latest message. I read it at least twice (some parts more).
·
Sunday, 12 October 2014 15:24
·
0 Likes
·
0 Votes
·
0 Comments
·
GTMetrix gives a great overview, and it gives you both numbers. If you look at the bottom of timeline view it shows up: 2.69s (onload: 3.11s) (the first is the main load, and the second is the full load)

The problem with GTMetrix is they reward certain behaviors with points, but do not penalize the consequences of those behaviors. Meaning you can achieve a 99% score using all these different types of compressions stacked on top of eachother, but actually end up with a slower site than with no compression.

So you gotta really analyze what each point recommending, what does the timeline look like. Is there anything that is loading that I do not need, is the waiting time over 500ms? What is triggering that slow waiting time etc.

With basic sites you can add all the compression in the world without headaches, but with sites that are complex like EasySocial based sites it is another story. There are consequences to every compression you enable.


Basically with JFBConnet merging CSS can be done safely. But Defer Javascript, Minify Javascript, Merge Javascript etc. can sometimes/often make the site load slower. Because you gotta wait for it to create and download a big file that is needed for important site functionality. In that case, I prefer to download a few smaller files very fast and be able to use them right away... rather than delaying them.

That said with Mod_pagespeed minify and merge javascript have almost no negative effect, and work without problems. So it is not just the action that determines the impact on speed. It is also the method.

A good component I recommend trying is Too Many Files, it stops the site from loading duplicate files and gives you the choice of 4 different javascript minification methods. So you have much more control. (That said, ultimately on my site it had some undesirable consequences, so I stopped using it... but for a while there it managed to reduce requests and speed up my site significantly.)
·
Sunday, 12 October 2014 16:01
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks for the heads up on this Jannik, much appreciated!

Josh,

As Jannik pointed out, even though these system plugins are helping you reduce the number of files (css) or (js), they increase the page loading time which would be the most important load of your site.

To be honest, apart from Jannik's suggestion, I really have no idea how to help you with this because the slow-ness isn't coming from EasySocial but your system plugins which tries to manipulate the output of your site. In fact, I really think you should be asking the performance issues with these plugin providers because there is only so much that I can advise you

I really wish that these plugin providers would really start looking at these bottlenecks rather than just blaming us for this
·
Sunday, 12 October 2014 23:02
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark, at some point when things are less hectic, give me a list of the main popular components/plugins that you feel are known bottlenecks, and a basic explanation on what areas they need to focus on to improve things. Then I will gladly go around posting support tickets with these suggestions.

I notice JFBConnect has updated for speed after getting feedback from you I believe. At some point, check if it was enough or if more can be done. I subscribe to them and would gladly get in touch with them about this. Although, it is my understanding that you have had no trouble getting in touch with him. Alex is great to work with, so I am sure that if he hasn´t already implemented all your suggestions, he will.

JCH Optimize, I realize that this one has some serious bottle necks and I believe you had trouble getting through to them. I do subscribe to their pro version, so I would gladly post a ticket with performance feedback.

Most of the others you have mentioned regularly are free, but I would gladly start threads on their forums to see if we can improve things.

Not to mention, I subscribe to most of the popular Joomla related components/plugins, so odds are I might subscribe to more components that can be improved.

Anyway, let me know if you would like me to spend some time trying to encourage some Joomla Developers to improve the performance of their components... or if you need help getting in touch with any particular Developer.
·
Sunday, 12 October 2014 23:27
·
0 Likes
·
0 Votes
·
0 Comments
·
Thank you very much Jannik, will do! I think the major 2 plugins which I noticed so far is K2 and Kunena but I haven't really thoroughly tested them yet because this requires quite a bit of time to do some profiling on these plugins.
·
Sunday, 12 October 2014 23:52
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks Jannik for the well thought out response. Will have to do more investigation into system plugins and such. The compression explanation makes sense. Also thanks Mark for confirming that. Will look into "Too Many Files" if there are duplicate files loading. I know this reply is short, but you guys summed things up pretty well. And yes I read over it carefully (the replies).
·
Monday, 13 October 2014 12:02
·
0 Likes
·
0 Votes
·
0 Comments
·
You are welcome, Josh. Let me know if you have any further questions or if you stumble upon any complications. While I am no expert, having spent the last few months experimenting with various setups, I do believe I have learned some valuable things a long the way... and I am more than happy to share my results and experiences here.
·
Monday, 13 October 2014 12:12
·
0 Likes
·
0 Votes
·
0 Comments
·
Nothing really very useful to add here except shared hosting is never really going to cut it. You can bet that 50 other people are all trying to task your shared server resources. That's fine for a brochure Wordpress site but not for a complex data tasking application like easy social. The software will work but of course it is going to be slower according to resources available to it.

I can assure you that with a proper Joomla configuration, a decent server and some basic server optimization, the easysocial dashboard will load in under a second. That is also now with over 30,000 members with 100 being logged in at any time.

I love easysocial, keep up the great work guys.
·
Tuesday, 14 October 2014 04:40
·
0 Likes
·
0 Votes
·
0 Comments
·
Kunena plugin adds only a 0.10ms to response time for me, which is nothing.

I'm using a Apache2 with APC and MariaDB, my site loads in 1.5s with lots of streem items.
And yes, easysocial 100% needs to be improved in respose time. Hope ES 1.4.0 will have some improvements in this case.

Are you guys using some cache system like varnish? If so, maybe You can share some vlc to work with ES, or any other details how to improve response time!

Cheers,
Steve
·
Tuesday, 14 October 2014 05:21
·
0 Likes
·
0 Votes
·
0 Comments
·
I believe EasySocial's response time is pretty good already as we have optimized it quite a bit and with very minimal performance optimization, it could be as low as 1s - 1.5s . If you ever find a social network solution which renders the page below 1s, it's close to impossible

EasySocial is not just a simple CRUD application. It's extremely powerful and it includes tons of complicated queries simply because of the stream. If you try to load up Facebook, or any other social network extensions that utilizes the stream, perform a comparison of load times with EasySocial and it will blow your mind away
·
Friday, 17 October 2014 13:05
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark,
But lot of members complain about the response time. Then maybe someone need to make a tutorial how to get it faster under 1s with some 3'rd optimizations. Or make, as you said: look like it loads fast, for example first load site, then elements like the FB.
·
Friday, 17 October 2014 13:16
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello Steve,

I don't think it's possible in any way at all to get a site render < 1s. I did some comparisons with a couple of different social networks:

1. EasySocial - with 10 stream items with 20 comments, 10 likes (1.28s)
2. JomSocial - with 10 stream items with 20 comments, 10 likes (3.26s)
3. BuddyPress - with 10 stream items (I don't know how to operate their comments and likes so can't test it) (1.68s)

I am just touching on the initial loading time of the page and not the entire page load because there's a lot of other different factors which accounts to the page load.
·
Friday, 17 October 2014 13:50
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark, I wish my profile was going that fast. After disabling pretty much all plugins (except required core plugins and EasySocial) it still seems to load slow as seen here. I did a comparison on GT Metrix showing the loading time between a article with plenty of images vs EasySocial Profile:

Article: Page load time: 5.24s | Total page size: 3.50MB | Total number of requests: 99

EasySocial Profile: Page load time: 12.52s | Total page size: 15.6MB | Total number of requests: 75

There might be a relationship between the page size and the page speed in this case. Notice how ES has 3.57 times more total page size than the article? Perhaps the photo part of the stream/profile needs to be re-evaluated. This is perhaps the biggest reason I suggested in the past a method to allow the admin to specify image sizes so that we can maximize bandwidth usage in relation to the max-width of our templates.
·
Friday, 17 October 2014 14:00
·
0 Likes
·
0 Votes
·
0 Comments
·
Well, that's because your server itself is extremely slow. If you don't believe me, try to load http://www.test.alpineascent.com/administrator/index.php?option=com_content and look at the page load. This is just running on a very simple SQL query to retrieve a list of articles that has been created on the site.

Here's the result which I have captured using Firebug, http://screencast.com/t/h3j38w05ykIS . On my local instance (running on Mac and SSD), listing the articles at the back end only takes about 300ms .
·
Friday, 17 October 2014 16:26
·
0 Likes
·
0 Votes
·
0 Comments
·
Server optimization is one thing I really specialize in, if you are running easysocial on shared hosting it WILL be slow and there is not a huge amount you can do about it except for run the very bare minimum of functionality and stomach the slow speeds.

You can tell instantly if your server is not up to scratch if the Joomla admin is also slow.

As with everything in life you get what you pay for, lets say for example we compare easysocial to the petrol you put in your car. If you put petrol in a Ford Fiesta (an average car) it will run OK but it is never going to be very fast as it is limited by the performance specifications. However if you put the same petrol in a Ferrari is will simply fly. The same with servers and hosting accounts. A Fiesta is cheap so you stomach the rubbish performance but a Ferrari which costs more will make full performance use of the petrol (easysocial!). In both cases the variable petrol (easysocial) is the same but the hardware you use to run it is vastly different. Just like cars you can also tune for performance however you need to know what you are doing by either studying and practicing or paying. However you need access to hardware which shared hosting will not give you.

The bottom line, get better hosting!!

Easy Social will load in under a second, I have already achieved this under heavy load, the difference is I use a dedicated server and know how to make the server use it's full potential. Clever cache techniques are also a must!

See loading specs (attached) on my clients site (easysocial dashboard which uses the heaviest queries), this gives a page speed score of 96/100.
·
Friday, 17 October 2014 21:29
·
0 Likes
·
0 Votes
·
0 Comments
·
Josh, let me know how much data you upload each month, etc. and image sizes e.g. and whether or not you compress them.
If the numbers are right I may be able to offer you a VERY special deal on hosting.... Let me know.


I will say that your host which is, part of the EIG group .....they own many companies such as Hostgator, Ipage, Fatcow and some more too. Many of their users complain about speed, my sites when on HG were slow.

Trevor
·
Friday, 17 October 2014 21:39
·
0 Likes
·
0 Votes
·
0 Comments
·
Wow Matthew, that's a pretty good result you have there! Amazing and finally someone that really understands where those bottlenecks are coming from
·
Saturday, 18 October 2014 01:48
·
0 Likes
·
0 Votes
·
0 Comments
·
Matthew, can i somehow contact You?
·
Saturday, 18 October 2014 01:54
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks for the advise on this. When my site has everything it needs and I collect enough money I plan on going full dedicated server. Right now I'm using a shared host which I know isn't that great, but it's all I can afford right now. Linode seems like my best choice for being able to spare $10 a month. I knew for a long time that shared hosting would give my a huge performance loss, but saw that between a ES page and Joomla page it was quite a bit different. But considering that each request/query is probably much slower on my server it makes sense. I had to bring up the image issue as a possible concern. My site will be heavily focused around photos.

Matthew Pate wrote:
As with everything in life you get what you pay for


I wouldn't say everything. Many folks pay $5,000 + to climb Alpamayo, I did it on $16! I make my dollars go very far, this is another reason I am highly appreciative of the work that the stacked team does. In this case it's the stacked team who make them go far. With camera equipment however your statement holds pretty strong.
·
Saturday, 18 October 2014 04:08
·
0 Likes
·
0 Votes
·
0 Comments
·
Hey Steve yeah, shoot me any question you have right here I am slightly wary of giving professional details out on these forums. I have a ton of work on already

Josh, that statement also hold true for a decent server company Dedicated is the way to go my friend and brush up on your admin skills at the same time. When you get there let me know if you want some help to get the best out of it.
·
Saturday, 18 October 2014 05:05
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks Matthew.

I wonder what kind of web setup and cache you use. I have a dedicated server as well, so if u can point me a dirrection with details, that would be a just wonderful. At the moment i am using Apache2, with mariadb and APC, ES dashboard with a lot of stream items loads in 1.5 sek if logged in and arround 1s if not logged in. Site is running without any caches enabled, even joomla. Tried varnish, but i am not so strong to configure vlc to purge cache on POST.

Thanks
·
Saturday, 18 October 2014 05:46
·
0 Likes
·
0 Votes
·
0 Comments
·
Why most are hooked on apache when IIS beats it in performance?

http://www.gtcomm.net/blog/nginx-the-best-http-server/

CPU Utilization
• IIS – 9 percent
• Nginx – 21 percent
• Apache – 26 percent

Peak Throughput
• IIS – 49,000 responses per second (r/s)
• Nginx – 23,000 r/s
• Apache – 14,000 r/s

Response Time
• IIS – 2.8 milliseconds
• Nginx – 5.5 milliseconds
• Apache – 6.3 milliseconds
·
Saturday, 18 October 2014 13:30
·
0 Likes
·
0 Votes
·
0 Comments
·
With IIS, you get faster speeds but there's also a lot of drawbacks that comes with it
·
Saturday, 18 October 2014 17:58
·
0 Likes
·
0 Votes
·
0 Comments
·
Matthew Pate wrote:

When you get there let me know if you want some help to get the best out of it.


Will do, will probably be this coming January when my shared host expires.

@Mark: What are the draw backs of IIS? (off the top of your head, no need to think it too hard)
·
Saturday, 18 October 2014 18:16
·
0 Likes
·
0 Votes
·
0 Comments
·
The only time I did play around with this was about 6 years ago but ever since then, I have never played around with it.
·
Saturday, 18 October 2014 20:43
·
0 Likes
·
0 Votes
·
0 Comments
·
How about the fact you have to have a windows server to use IIS, loads of cost and then the license fees? More cost. Then as with every thing Microsoft the increased threat of malware attacks as the server is considered less secure.

PHP was written natively for Linux, so IIS has to use emulators.

I have considered IIS before for some projects but I much prefer open source and can make a LEMP stack run circles around ISS anyway in benchmarking tests but for a third of the cost.

I would agree Apache 2 is increasingly a bad choice which is why I prefer nginx or cherokee as my web servers of choice,
·
Saturday, 18 October 2014 23:03
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks for sharing your insights on this Matthew I was contemplating between Nginx and Apache for stackideas.com but nginx was pretty unstable compared to apache (based on my observations). Once in a while nginx will just go into a zombie state and doesn't respond for no reasons at all. The only way around this which I tried previously was to write a script to restart nginx at every x interval which is kinda silly in my opinion.
·
Sunday, 19 October 2014 00:27
·
0 Likes
·
0 Votes
·
0 Comments
·
Matthew,
Could You answer to my questions please?
·
Sunday, 19 October 2014 05:49
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark wrote:

Thanks for sharing your insights on this Matthew I was contemplating between Nginx and Apache for stackideas.com but nginx was pretty unstable compared to apache (based on my observations). Once in a while nginx will just go into a zombie state and doesn't respond for no reasons at all. The only way around this which I tried previously was to write a script to restart nginx at every x interval which is kinda silly in my opinion.


Mark, I keep getting surprised everytime I hear your experiences with Nginx. For me it is the opposite, I have had so many headaches with Apache that I moved to Nginx due to desperation and frustration with Apache :P

Since switching to Nginx on all my sites, I have never had any headaches.
·
Sunday, 19 October 2014 14:00
·
0 Likes
·
0 Votes
·
0 Comments
·
Haha, maybe nginx doesn't like me and likewise for apache which doesn't like you
·
Sunday, 19 October 2014 18:07
·
0 Likes
·
0 Votes
·
0 Comments
·
Steve wrote:

Thanks Matthew.

I wonder what kind of web setup and cache you use. I have a dedicated server as well, so if u can point me a dirrection with details, that would be a just wonderful. At the moment i am using Apache2, with mariadb and APC, ES dashboard with a lot of stream items loads in 1.5 sek if logged in and arround 1s if not logged in. Site is running without any caches enabled, even joomla. Tried varnish, but i am not so strong to configure vlc to purge cache on POST.

Thanks


I am currently running the latest distro of Ubuntu with the latest versions of both PHP and SQL server. I use the built in zend opcache that comes with the latest versions of PHP which makes APC virtually redundant (I never use it now).

My server specs: Xeon E3-1240 v3, 4 Cores x 3.4 GHz, 8 GB DDR3, 120 GB SSD

I use nginx as the main web server which interfaces with PHP-FPM and a highly tuned MYSQL. Memcached is used in front of the database to cache queries and I store all of the Joomla sessions into memcached. At this point in time I also make use of the simple Joomla file cache as using memcached is much slower and I have the advantage of SSD hard drives.

In addition I also use a content deliver network to offload all images, js and CSS. This basically saves my server from having to deliver this content and is super fast. I also defer the loading of all js so my pages render much faster. Trying to make the page as light as possible is key, so I make sure I have as few http requests as possible and minimize and combine as much js and css as possible.

I have also spent a considerable amount of time tuning the nginx configuration (with max servers ect) to my specific server setup to get the first byte time as low as possible. This is now around 200ms (the same as Google roughly). The database also need constant tuning and I do this every 48 -72 hours and adjust certain variables to keep everything optimal.

Yes, I am running a very custom setup of Varnish 4 which really helps to load balance and keeps everything fast under peak periods of very heavy load. Basically everybody who is not signed in to the site are served pages directly from memory. With around 400 - 500 visitors at any time this saves my server having to serve tons of PHP and SQL requests and instead I concentrate my resources on my logged in members. Even when members are logged in I will try and server as much as I can directly from memory. This helps keep load averages even at peak well below the 1.0 mark with plenty of breathing room. Currently the highest amount of members logged in has been around 150. The server is now capable of I would say handling 400 members online before slowing. Not much is being passed to disk as mostly everything is being served as much as possible directly from RAM.

I have had to alter some parts of the Joomla core to achieve this, especially the way Joomla handles session cookies. I have also had to write custom rules based on components I am using. It has taken some time to perfect this.

I am lucky in the fact that I did a degree in Computer Science, So I can code! I have spent years messing around with various server configurations and am mostly self taught in command line and server optimization. I am now messing around with huge server balancing projects as the projects we are asked to build become more and more complex.

It would be hard to recommend a generic server setup as each project has its own requirements. However I would be happy to help a few members setup their servers and get the very best out of them. When building a new server every aspect has to be taken into consideration from the very start, beginning with the choice of operating system!

Do not be afraid to start over if things are not working well. I have often backed up my files, wiped the server and began from scratch!
·
Sunday, 19 October 2014 18:49
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark wrote:

Thanks for sharing your insights on this Matthew I was contemplating between Nginx and Apache for stackideas.com but nginx was pretty unstable compared to apache (based on my observations). Once in a while nginx will just go into a zombie state and doesn't respond for no reasons at all. The only way around this which I tried previously was to write a script to restart nginx at every x interval which is kinda silly in my opinion.


I am really surprised at this, I find nginx to be very stable. The current setup has been running for 5 months now with zero downtime. Not a single glitch from nginx as yet! In contrast Apache used to crash at least every month!
·
Sunday, 19 October 2014 19:01
·
0 Likes
·
0 Votes
·
0 Comments
·
Matthew, thank You very much for your answer.
Could you please add me on skype i have a offer for you.
steve.r3211
·
Sunday, 19 October 2014 19:15
·
0 Likes
·
0 Votes
·
0 Comments
·
I just stumbled upon this, has anyone tried it? http://extensions.joomla.org/extensions/hosting-a-servers/site-speed/25983
·
Sunday, 19 October 2014 20:56
·
0 Likes
·
0 Votes
·
0 Comments
·

I am really surprised at this, I find nginx to be very stable. The current setup has been running for 5 months now with zero downtime. Not a single glitch from nginx as yet! In contrast Apache used to crash at least every month!


Hm, it looks like you guys are getting better results with Nginx than I am Perhaps the php-fcgi setup which I was using wasn't working very well for us.
·
Sunday, 19 October 2014 22:07
·
0 Likes
·
0 Votes
·
0 Comments
·
yeah, try with php-fpm instead
·
Sunday, 19 October 2014 22:21
·
0 Likes
·
0 Votes
·
0 Comments
·
Noted, perhaps in the future when I have more time to experiment with nginx. The last I played around with nginx was probably about 4 years ago
·
Sunday, 19 October 2014 22:46
·
0 Likes
·
0 Votes
·
0 Comments
·
I know it's not a virtual private server, however I swapped to SiteGround today (for the second time). Wow, EasySocial is going a lot faster now! While it's not literally instant, I am now seeing ES run almost as fast as a standard Joomla page which is awesome. Before I really did believe you guys that you were doing what you could to find as many bottle necks as possible, but now I'm seeing the results and it's a real pleasure. Some day it will be really awesome with data caching and a true VPS.
·
Thursday, 05 February 2015 17:00
·
0 Likes
·
0 Votes
·
0 Comments
·
+1
·
Thursday, 05 February 2015 20:35
·
0 Likes
·
0 Votes
·
0 Comments
·
By the way guys, I just discovered something really cool and if you are using Apache, try adding the block of codes below into your .htaccess file,


AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript


This seems to reduce the js file for EasySocial from 1.1mb to 260kb! I am going to post a blog about this shortly!
·
Friday, 06 February 2015 02:04
·
0 Likes
·
0 Votes
·
0 Comments
·
Sounds like a cool blog post, looking forward to it. I am curious however about visible evidence for this. When turning off Gzip in Joomla, clearing all caches, and not using your mod, in the net panel I get the following result which is close to the 260kb you mention:



Without your .htaccess mod I seem to be getting the result you mention as seen here. Perhaps I don't understand the net panel enough? Can you confirm if it's loading in 262kb or 1.1mb? I'm trying to figure out if SiteGround is already compressing the file to make it down to 262kb.
·
Friday, 06 February 2015 03:20
·
0 Likes
·
0 Votes
·
0 Comments
·
as a side note > admin tools have this as a feature in the htaccess generator tool "Automatically compress static resources"
https://www.akeebabackup.com/documentation/admin-tools/optimisation-and-utility.html
·
Friday, 06 February 2015 04:19
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark wrote:

By the way guys, I just discovered something really cool and if you are using Apache, try adding the block of codes below into your .htaccess file,


AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript


This seems to reduce the js file for EasySocial from 1.1mb to 260kb! I am going to post a blog about this shortly!


Very cool! Thanks Mark.
·
Friday, 06 February 2015 06:22
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark wrote:

By the way guys, I just discovered something really cool and if you are using Apache, try adding the block of codes below into your .htaccess file,


AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript


This seems to reduce the js file for EasySocial from 1.1mb to 260kb! I am going to post a blog about this shortly!


Any Nginx alternative?
·
Friday, 06 February 2015 06:28
·
0 Likes
·
0 Votes
·
0 Comments
·
Jannik,

Read my post here for Nginx settings, http://stackideas.com/blog/optimizing-the-delivery-of-javascript-on-joomla

Josh,

Probably because your site is already serving the contents using gzip. Your host is good as they are enforcing gzip compressions automatically This explains why you aren't complaining about the size of the js compared to others.
·
Saturday, 07 February 2015 02:35
·
0 Likes
·
0 Votes
·
0 Comments
·
Awesome post Mark, I'm sure many will appreciate it. Now if only I could find a good CSS compressor. I suppose the best way is to have a template use it's own compiler?
·
Saturday, 07 February 2015 06:31
·
0 Likes
·
0 Votes
·
0 Comments
·
I wish there was a way to subscribe to threads and tags in ED, because this thread is a prime example of how useful these forums can be!! The only downside it that I have to use Pocket to bookmark this or I may never find it again.
·
Saturday, 07 February 2015 06:52
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark wrote:

Jannik,

Read my post here for Nginx settings, http://stackideas.com/blog/optimizing-the-delivery-of-javascript-on-joomla

Josh,

Probably because your site is already serving the contents using gzip. Your host is good as they are enforcing gzip compressions automatically This explains why you aren't complaining about the size of the js compared to others.


Thank you, I looked over my nginx.conf and I can see I already had that tweak added. But then again, I don't have speed issues right now :P
·
Saturday, 07 February 2015 07:52
·
0 Likes
·
0 Votes
·
0 Comments
·
Jannik, yep, your site is already serving the js files with gzip compression
·
Saturday, 07 February 2015 15:30
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi guys,

Instead of focusing on server optimization, why not working on the source of the problem?

EasySocial is slow and can be optimized still.

I made a couple of tests. The friends suggestions is slow as hell so I had to remove it.

Also, I added the Toolbar module on other pages of my website and Easysocial is loading the whole foundry javascript and CSS!

So for just the toolbar, Easysocial is loading a 1MB JS file, (yes 1MB! that's way too much for slow connections and mobiles, easysocial-1.3.12.static.min.js) and a 146KB CSS file (base.min.js).

First of all, those files are way too big, they are loading the whole component javascript and CSS just for the toolbar functions. Why not make multiple files for each function of easysocial and just load the ones needed everytime instead of loading everything everytime?

Same thing for groups, events and albums for example, even if I don't use groups and events, the Javascript and CSS of those are loaded because included in those 2 previous JS and CSS files! Same thing for admin, I saw admin functions on the front-end JS, wtf? Why not excluding the admin from the main file?

So yes having a fast server is great, but even better would be to have an optimized product.

Let's face it, there's still room for a lot of improvement. I just checked a couple of minutes to find those and it's just the front-end part. I am pretty sure there is a lot more on the backend.

First of all just using a little module on other pages shouldnt load the whole JS and CSS of easysocial. 1.2MB just for a little module is unacceptable.

So are you guys planning to optimize easysocial or will I have to hack the core to fit my needs?
·
Tuesday, 10 February 2015 12:39
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello Pierre,

This is where I have to disagree, I am afraid. If you have gzip compressions, the file size is < 300kb. The reason that you are getting 1mb is simply because you are reluctant to optimize the server. You are building a social network with tons of facilities and not just a basic CRUD web extension / site that displays data to you. It brings tons of different interactivity

Secondly, if you are breaking down into smaller chunks of files, that could be a problem as well because now your server is going to make much more requests to the server to get different sets of files. You will eventually come back to us complaining that the site is loading too many files rather than too huge files. However, further to what you have suggested, I do agree that it should be spread across multiple JS files and this is exactly what we are going to do in EasySocial 1.4. We are not breaking it down to very small file sizes but probably into several sections instead.
·
Tuesday, 10 February 2015 14:33
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi Mark,

If you don't want to add requests, you could just make a JS generator that creates the JS file once you set what you want in the admin. Let's say I disable the Events but keep Groups and Albums, well the system compiles the final JS file without the Events JS. Same thing for the CSS.

You could make that for every option in the admin. The user sets all the options he wants then the custom JS file is created.

Sure I understand that's it's more work to implement but it would reduce the data download a lot.

300 kb is still a lot for a single file in a web page. Search engines, slow connections and mobiles don't like it.

The biggest problem I am having right now is that I am using the toolbar module on other pages than Easysocial, and the whole javascript is being loaded, the toolbar only need a few lines from that JS to work but the whole thing is loaded.

Is that what you are gonna fix in 1.4? Please tell me that the modules will only the load JS/CSS that they need in the 1.4!

Easysocial is an awesome component and I understand that it is heavy, I am a developer myself, but I am sure that are still several ways to optimize it.

Thanks
·
Tuesday, 10 February 2015 15:55
·
0 Likes
·
0 Votes
·
0 Comments
·
Btw thanks for those deflate lines Mark, I just replaced the default Gzip joomla option by those in the httaccess and the difference is crazy. With server cache and browser cache on (outside of Easysocial). The page load time is average 100ms, it was about 400ms with default Joomla Gzip compression. And it's a big flash games website with lot of data and queries. It also reduced load time by about 200-300ms on non-cached pages (when user logged-in).
·
Tuesday, 10 February 2015 16:27
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello Pierre,

Yes, in EasySocial 1.4, we will be revamping the entire javascript structure just like what we are doing right now on EasyBlog 5. Where we only load what's necessary based on the module / plugin / view.

To be honest, a script file that is at 264kb which empowers your social network is pretty solid. Look at the script sizes on Facebook or any other social networks out there

Do you want a social network that is not interactive enough, boring and doesn't entice your users? What's the point then of running a social network altogether. We could build an extremely simple photo upload / display process without all the help from javascripts but what would make your social network so spectacular or special?
·
Tuesday, 10 February 2015 23:24
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark 1 Pierre 1
Have to agree with both of you... and also...
I agree with previous comment that MARK, it's been two years we request a subscription link in ED :P
·
Wednesday, 11 February 2015 01:32
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi Mark,

You say that 246KB is solid but I don't agree because the JS if far from optimized right now, what if it it could be 50KB with the optimizations? That would be pretty good.

You can't just say hey, 246KB is pretty good, when there are still easy multiple ways to reduce it.

I am not saying to reduce functionnalities, I never said that, I am saying to keep all the same functions but optimize the JS, glad to hear that you are doing that in 1.4
·
Wednesday, 11 February 2015 03:52
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello Pierre,

Just for your information, jquery alone is close to 40kb. You are saying that we can build all these interactivity under 10kb? That's close to insane Unless we don't have interactive stuffs like hovering a profile cover, photo uploader etc.
·
Wednesday, 11 February 2015 17:48
·
0 Likes
·
0 Votes
·
0 Comments
·
Mark, once again I didnt say to remove functions, I said optimize. Start by removing the admin javascript from the main javascript file and you will save some KB right?

Also like I said in the previous posts, if I don't load the groups or/and events or/and albums, the Javascript/CSS for those shouldnt be loaded

If I am on the dashboard, the profile JS/CSS shouldnt be loaded, if I am on the research page, the JS/CSS of all the rest shouldnt be loaded.

Right now ALL the JS/CSS is loaded EVERYWHERE. That's where an optimization is possible.

Anyway let's see what happens in 1.4and let's hope that a simple easysocial login module won't load the entire Javascript and CSS of the framework anymore
·
Wednesday, 11 February 2015 18:05
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks for the heads up on this Anyway taking off the admin scripts wouldn't cause the script to be anywhere around 50kb. What I am saying is that regardless of the optimization done, the scripts would probably be somewhere around 100 - 150kb. You shouldn't be expecting anywhere around 50kb as it is close to impossible.
·
Thursday, 12 February 2015 13:10
·
0 Likes
·
0 Votes
·
0 Comments
·
50KB was just an example Mark. What I am saying is that there is room for improvement. 100KB is less than half of what it is now. That would be pretty **** good right? We don't know what the minimum possible can be but we know that there is still things that can be done to reduce the size.
·
Thursday, 12 February 2015 13:19
·
0 Likes
·
0 Votes
·
0 Comments
·
Hey Mark,

I just saw that code in the Notifications module view:

<?php if( $params->get( 'show_friends_notifications' , true ) ){ ?>
<div class="es-menu-item notice-friend"
data-original-title="<?php echo JText::_( 'MOD_EASYSOCIAL_NOTIFICATIONS_FRIEND_REQUESTS' );?>"
data-es-provide="tooltip"
data-placement="bottom"
>
<a href="javascript:void(0);"
class="<?php echo $my->getTotalFriendRequests() > 0 ? 'has-notice' : '';?>"
data-module-notifications-friends
data-interval="<?php echo $params->get('interval_notifications_friends', 60 );?>"
data-popbox="module://easysocial/friends/popbox"
data-popbox-toggle="click"
data-popbox-position="<?php echo $params->get('popbox_position', 'bottom'); ?>"
data-popbox-collision="<?php echo $params->get('popbox_collision', 'flip'); ?>">
<i class="ies-users"></i>
<span class="badge badge-notification" data-notificationFriends-counter><?php echo $my->getTotalFriendRequests();?></span>
</a>
</div>
<?php } ?>

The count function is called 2 times! Why not putting it in a variable on the first time? These type of database queries (COUNT) are heavy.

So just in the notifications module, you are calling 6 Mysql COUNT queries (friends, messages and notifications) when you could easily just call 3!

See Mark, I am pretty sure there are other lines in EasySocial code that can easily be optimized, I just checked 2 min and found those. Server optimization is great yes, but the code on the server also needs to be optimized and there are several things that can be done to make EasySocial faster.
·
Thursday, 12 February 2015 15:46
·
0 Likes
·
0 Votes
·
0 Comments
·
I fixed it on my version, I suggest that you update it on the public version to make the Notifications module faster for everyone.
·
Thursday, 12 February 2015 15:48
·
0 Likes
·
0 Votes
·
0 Comments
·
Excuse me,
please help optimize main page.
My EasySocial component works at url domain/home/community.html
and main page has only one ES module - Login form.
But main page load all js scripts (media/foundry/4.0/ 19 files) and ES design .css files (components/com_easysocial/themes/wireframe/styles/ - 3 files). What for?

http://www.webpagetest.org/result/150212_9B_GCZ/1/details/
this is katastrofa
·
Thursday, 12 February 2015 18:13
·
0 Likes
·
0 Votes
·
0 Comments
·
Anastasia, this is the problem that I pointed in previous posts and what I suggested that should be optimized.
·
Thursday, 12 February 2015 18:16
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello Pierre,

You are absolutely wrong that it get's called twice If you look at the code in the method, getTotalFriendRequests , it's cached using the static keywords. Regardless of how many times it get's called, it only executes the code once
·
Friday, 13 February 2015 00:18
·
0 Likes
·
0 Votes
·
0 Comments
·
Hey Mark,

You're right, I didnt see the cache

Nevermind for this one then. I happy I was wrong because that would have been really bad.
·
Friday, 13 February 2015 04:02
·
0 Likes
·
0 Votes
·
0 Comments
·
Well, I am pretty sure most of the codes are already optimized and we're only lacking on the js part which we will be implementing on EasySocial 1.4.
·
Saturday, 14 February 2015 02:56
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi Mark,

Also if you can implement the following:

1) Common foundry script for all your components ( Currently ES, EB.. load their own foundry versions)
2) Shift to fontawesome, and give a little button on admin side asking Load Fontawesome "Yes or NO", for sites already loading fontawesome as part of template. ( I ask this because currently my site is loading 4 different woff files!!)
3) Move away from image altogather in favour of icon fonts (Fontaweome)
4) I dont know whether you have jquery & bootsrap js built into your js, if yes then separate them and give the choice to load or not. (In case Bootsrap & jquery are being loaded by the template)

regards
Sunny
·
Wednesday, 10 June 2015 21:55
·
0 Likes
·
0 Votes
·
0 Comments
·
Sunny wrote:

3) Move away from image altogather in favour of icon fonts (Fontaweome)


While I love font icons and do enjoy font-awesome, icons certainly still have their place. Using image sprites is the way to go if you want consolidation with loading less files. However this means it's harder to modify on both Stackideas and the customer's end.

Font icons cannot replace the well crafted detail of some icons such as expressive emoticons. The best practices would be to use icons when font icons cannot take it's place (smilies, extension icons, detailed ones) and remove the non needed icons.
·
Thursday, 11 June 2015 11:24
·
0 Likes
·
0 Votes
·
0 Comments
·
I agree, but i was referring to usage of easysocial custom font icons, they surely can be replaced by fontawesome.

This issue is also there with jreviews, and my site is using both, so we have 5 fonts loaded (at times 6 or 7):
1) Fontawesome (icon)
2) Jreviews (Icon)
3) Easysocial (Icon)
4) The Website font.
5) Glyphicons (Joomla default)

Apart from above i have adsense which also loads its own custom fonts at times.

This is utter duplication on my site, but i have to live with it right now.

Secondly is there anyway we can defer parsing of easysocial-1.3.28.static.min.js & foundry.min.js , would it have any affect on the functionality?
rgds
·
Thursday, 11 June 2015 14:13
·
0 Likes
·
0 Votes
·
0 Comments
·
We plan to utilize font-awesome and a custom font set for EasySocial 2.0
·
Tuesday, 07 July 2015 17:41
·
0 Likes
·
0 Votes
·
0 Comments
·
Ali Galip Savasir replied on Thursday, April 14 2016, 05:28 AM Quote Edit Delete
I have same problem (

VPS server

http://www.inmotionhosting.com/vps-hosting VPS-1000HA-S RAM: 4GB†
Storage: 60GB
Bandwidth: 2TB
IP Addresses: 2

Still my web site is very slow ???!!!
·
Thursday, 14 April 2016 05:29
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi Ali Galip Savasir,

I have tried to access your EasySocial page on your site, it seems load quite fast. Frankly said, this is rather a web hosting's question than our product issue. This is actually beyond our support scope
·
Thursday, 14 April 2016 12:03
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi Ali Galip Savasir,

I have tried to access your EasySocial page on your site, it seems load quite fast. Frankly said, this is rather a web hosting's question than our product issue. This is actually beyond our support scope
·
Thursday, 14 April 2016 12:04
·
0 Likes
·
0 Votes
·
0 Comments
·
View Full Post