This page will provide some tips for getting better performance out of your cms_system-built applications. These tips will grow over time.
Most of these tips are intended for production environments, not development environments.
Feel free to add your own tips to help other developers out.
While cms_system has caching loaded and enabled by default, it sets the driver to a non-caching driver that makes development easier since you don't have to worry about results not showing up because the previous cache hasn't expired yet. While the use of caching is small at the moment, it will increase in future releases to boost performance in the admin area. You should definitely implement caching, where appropriate, in your own applications.
To change the type of cache driver used, you need to edit the MY_Controller
file. Find the __construct()__
method of the Base_Controller
and you'll see that in a production environment it defaults to using APC
caching with a file cache
as the backup. For some servers, the file-based caching may be slowing things down so you will need to adjust and tweak as necessary for your specific environment.
For types of caching, refer to the CodeIgniter User Guide.
By default, CodeIgniter will store bits of debugging information, like the last query ran, etc. This takes up both memory and processing power. To get a tiny boost in performance and memory usage, edit your production environment's db_debug
setting for your database and set it to FALSE
.
Be aware that this will make query information unavailable for the Profiler. This typically is not a problem, as the profiler is usually turned off for production sites.
On every page load, cms_system can check to see if migrations should be run. This makes an additional hit or two on the database and extra time is spent doing something that is not required, and often not even desired, in a production environment. It is recommended that you turn off auto migrations for production environments and handle these manually, or as part of an update script.
These can be turned off by modifying your application.php
file and setting the following settings to FALSE
.
$config['migrate.auto_core'] = FALSE;
$config['migrate.auto_app'] = FALSE;