In order to perform a detailed research, we setup two different test environments for Joomla!:
As the purpose of the research is to determine what good recomendations we can come up with for Joomla! and Joomla! extensions development, in both Environments we have installed our most powerful reporting system: SALES ANALYTICS for reports on VirtueMart sales, filled up with almost real data of 707 orders spread over a period of 707 days (101 weeks).
To get the bulk data for analysis we have used the embedded DEBUG feature inside Joomla! itself. This DEBUG systems retrieves information about response times and memory usage in five different Joomla! segments:
To test the front-end we have chosen to measure the home page behaviour, because this is generally the most visited page on every site. To test the back-end for reference we have chosen the control panel, where no specific functionality is generally loaded. And to measure the Joomla! extensions we have chosen SALES ANALYTICS with almost real data of 707 orders spread over a period of 707 days (101 weeks).
As sales report, we have selected to analyze the income report for all the 707 orders, over the 101 weeks period, displayed on a week by week basic for all the 9 main sales report parameters: gross income, net income, taxes, shipping costs, shipping taxes, # orders, # items, coupon discount and order discount. That report tyoe requires sum, accumulate, group, and display a matrix of 909 values and a linear graph of 101 points calculated from a database of nearly 6400 values. We have chosen this report type because it is the most demanding from the processing and rendering point of view.
With this environment setup, over a series of executions, this is the bulk data that's got for further analysis:
This information is going to be analyzed in further detail, but a few outstanding tendencies can already be pointed:
To get the most out of it, we are going to analyze this data step-by-step to understand where and how we can improve performance and scalability.
Last Saturday I attended the Joomla! Day Spain 2010 in Valencia. Among all the useful speaches we had, there was one from Daniel Rodriguez about Joomla! security and scalability for large Joomla! projects, that also included a view on Joomla! performance.
As many Joomla! developers already know, Joomla! performance for large projects is not its strongest feature, and all the APIs, classes, libraries and all that kind of stuff that Joomla! loads everytime to serve a web page, rapidly decreases Joomla! performance when very many user requests happen together.
Daniel talked about some recommendations and solutions to improve overall Joomla! performance, but one suggestion quickly got my attention: Daniel suggested that in order to improve performance, the on-site use of analytic tools should be avoided. He claimed that they take a lot of resources, and anyway you can always use Google Analytics because that's the best tool.
Well. I agree with the fact that you can always use Google Analytics if you want to; but the fact that this tool is the best, you know? ... I guess it depends on what you are looking for.
For example, if you need a reporting tool about Joomla! content Authors and their popularity in your website, Google Analytics is just useless. It has no access to that information, although it's on your website database. The same happens for sales reporting and social network participation. Google Analytics is very useful for many website reporting tasks (above all of them, analizing user behaviour on a website during a user session), but it is completely useless for other purposes, like analyzing Joomla! content authors. Google Analytics just can't reach that information.
This Daniel presentation came together with the fact that we are now specializing in developing professional reporting tools for Joomla!. We needed a flexible yet powerful mechanism to analyze how our most successful websites and online stores are behaving, and although Google Analytics was very useful, there was also some very key information, very important information, that we needed to handle and that was completely out of reach for Google Analytics (for example, accurate and complete sales reporting).
As we could not find such extensions for Joomla!, we decided to develop a reliable reporting engine and then build them ourselves on top of it.
Our reporting engine is very powerful, and because the reporting tools were meant to be used in successful very popular websites, key design features we considered were performance and scalability. Being leading the development since the begining and analyzing the end result, I believe we succeeded in that purpose.
But this is just my thought. Now that Daniel claimed this kind of reporting tools should be avoided in large Joomla! projects to improve performance, maybe it is time to do a deep research to see whether this believe holds true or not, and what can be done to improve Joomla! performance from a developer point of view.
In this deep research we will study all the relevant sides of Joomla! performance in order to get good quality recomendations for Jooma! and Joomla! extensions developers.