A big performance boost can be achieved by installing APCu (the APC user cache). It can cache all configuration and translation entries in the shared memory of the web server which can improve performance by 50%.
Be aware that you have to clear the APC user cache manually each time after you've changed a configuration option or a translation!
In order to tell your application to use the APC user cache, you need to change the apc_enable setting in the ./app/config/config.yml file of your application:
If you have more than one shop application on the same server, you must assign an unique apc_prefix for each instance! More about APC can be found in the administrator section.
The content cache is usually enabled by default if you haven't disabled it during development in your ./app/config/config.yml:
classes/cache/manager/name => 'None'
If you have a high volume of products (50k+) and your database server gets slower due to the amount of queries executed, you can offload the content cache entries either to another database server or to an in-memory key/value store like Redis.
To move the content cache entries to a Redis server, you have to install the ai-cache extension. The extension contains documentation how to configure your application for Redis support.
Alternatively, you can move the cached component content to another database server. In this case, you must add a db-cache resource block to your ./app/config/config.yml:
stmt: ["SET NAMES 'utf8'", "SET SESSION sql_mode='ANSI'"]
You can even distribute the Aimeos database to serveral database servers. More information is available in the developer section.
Browsers don't load all required files at once referenced inside a HTML document. Instead, they limit the number of concurrent requests for a single domain. To get around this, a common way is to make the files also available via a different domain, so the browsers will download more files in parallel. Thus, rendering the page is much faster for the user.
In both cases, you need to configure the Aimeos Symfony bundle to create links to the product pictures with a different domain. This can be done via an entry in the app/config/config.yml file:
The value in baseurl must be the URL prefix where the subdirectories for the product pictures and all related files are available.