This page will provide some tips for getting better performance out of your Bonfire-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 Bonfire 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, Bonfire 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;
30 ms | Loading Time: Base Classes |
141 ms | Controller Execution Time ( Docs / Index ) |
224 ms | Total Execution Time |
0.0003 | SELECT GET_LOCK('6mepdk0vvbd525cjd37k5smk49', 300) AS ci_session_lockSpeed: 0.0003 - Possible keys: - Key Used: - Type: - Rows: - Extra: No tables used |
0.0028 | SELECT `data` FROM `ap_ci3_sessions` WHERE `id` = '6mepdk0vvbd525cjd37k5smk49'Speed: 0.0028 - Possible keys: - Key Used: - Type: - Rows: - Extra: Impossible WHERE noticed after reading const tables |
0.0013 | SHOW TABLES FROM `artiweb_db` |
0.0004 | SELECT * FROM `ap_settings`Speed: 0.0004 - Possible keys: - Key Used: - Type: ALL - Rows: 40 - Extra: |
0.0048 | Total Query Execution Time |
__ci_last_regenerate | 1733016534 |
requested_page | https://104854.21dyvlrb.asia/docs/developer/performance_tips |
previous_page | https://104854.21dyvlrb.asia/docs/developer/performance_tips |
No GET data exists |
No POST data exists |
docs/developer/performance_tips |
docs/index |
HTTP_ACCEPT | */* |
HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
HTTP_CONNECTION | close |
SERVER_PORT | 80 |
SERVER_NAME | 104854.21dyvlrb.asia |
REMOTE_ADDR | 172.70.178.40 |
SERVER_SOFTWARE | Apache |
HTTP_ACCEPT_LANGUAGE | |
SCRIPT_NAME | /index.php |
REQUEST_METHOD | GET |
HTTP_HOST | |
REMOTE_HOST | |
CONTENT_TYPE | |
SERVER_PROTOCOL | HTTP/1.1 |
QUERY_STRING | |
HTTP_ACCEPT_ENCODING | gzip, br |
HTTP_X_FORWARDED_FOR | 18.191.162.73 |
base_url | https://104854.21dyvlrb.asia/ |
index_page | |
uri_protocol | AUTO |
url_suffix | |
language | english |
charset | UTF-8 |
enable_hooks | true |
subclass_prefix | MY_ |
composer_autoload | false |
permitted_uri_chars | a-z 0-9~%.:_- |
allow_get_array | true |
enable_query_strings | false |
controller_trigger | c |
function_trigger | m |
directory_trigger | d |
log_threshold | 0 |
log_path | /var/www/vhosts/artiplayer.com/httpdocs/application/logs/ |
log_file_extension | |
log_file_permissions | 420 |
log_date_format | Y-m-d H:i:s |
error_views_path | |
cache_path | /var/www/vhosts/artiplayer.com/httpdocs/application/cache/ |
cache_query_string | false |
encryption_key | d0680639b7b72a248f62d947aed47f62 |
sess_cookie_name | bf_session |
sess_expiration | 7200 |
sess_time_to_update | 300 |
sess_match_ip | false |
sess_expire_on_close | false |
sess_encrypt_cookie | false |
sess_use_database | false |
sess_table_name | sessions |
sess_match_useragent | true |
sess_driver | database |
sess_regenerate_destroy | false |
sess_save_path | ci3_sessions |
cookie_prefix | |
cookie_domain | |
cookie_path | / |
cookie_secure | false |
cookie_httponly | false |
standardize_newlines | false |
global_xss_filtering | false |
csrf_protection | true |
csrf_token_name | ci_csrf_token |
csrf_cookie_name | ci_csrf_token |
csrf_expire | 7200 |
csrf_regenerate | true |
csrf_exclude_uris | Array ( ) |
compress_output | false |
time_reference | utc |
rewrite_short_tags | false |
proxy_ips | |
bonfire.installed | 1 |
site.default_user_timezone | UM8 |
modules_locations | Array ( [/var/www/vhosts/artiplayer.com/httpdocs/application/modules/] => ../../application/modules/ [/var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/] => ../../bonfire/modules/ ) |
site.backup_folder | archives/ |
contexts | Array ( [0] => content [1] => reports [2] => settings [3] => developer ) |
enable_activity_logging | true |
sparks_path | ../sparks/ |
template.site_path | /var/www/vhosts/artiplayer.com/httpdocs/public/ |
template.theme_paths | Array ( [0] => themes ) |
template.default_layout | index |
template.ajax_layout | ajax |
template.use_mobile_themes | false |
template.default_theme | default/ |
template.admin_theme | admin |
template.message_template | <div class="alert alert-{type} alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> <div>{message}</div> </div> |
template.breadcrumb_symbol | : |
template.parse_views | false |
assets.directories | Array ( [base] => assets [cache] => cache [css] => css [image] => images [js] => js [module] => module ) |
assets.js_opener | $(document).ready(function() { |
assets.js_closer | }); |
assets.css_combine | false |
assets.js_combine | false |
assets.css_minify | true |
assets.js_minify | true |
assets.encrypt_name | false |
assets.encode | false |
assets.base_folder | assets |
assets.asset_folders | Array ( [css] => css [js] => js [image] => images ) |
ui.current_shortcuts | Array ( [form_save] => Array ( [description] => Save any form in the admin area. [action] => $("input[name=save]").click();return false; ) [create_new] => Array ( [description] => Create a new record in the module. [action] => window.location.href=$("a#create_new").attr("href"); ) [select_all] => Array ( [description] => Select all records in an index page. [action] => $("table input[type=checkbox]").click();return false; ) [delete] => Array ( [description] => Delete the record(s). [action] => $("#delete-me.btn-danger").click(); ) [module_index] => Array ( [description] => Return to the index of the current module. [action] => window.location.href=$("a#list").attr("href"); ) [goto_content] => Array ( [description] => Jump to the Content context. [action] => window.location.href=$("#tb_content").attr("href") ) [goto_reports] => Array ( [description] => Jump to the Reports context. [action] => window.location.href=$("#tb_reports").attr("href") ) [goto_settings] => Array ( [description] => Jump to the Settings context. [action] => window.location.href=$("#tb_settings").attr("href") ) [goto_developer] => Array ( [description] => Jump to the Developer context. [action] => window.location.href=$("#tb_developer").attr("href") ) ) |
emailer.write_to_file | false |
migrate.auto_core | false |
migrate.auto_app | false |
commonmark.valid_drivers | Array ( [0] => Parsedown [1] => Markdown [2] => MarkdownExtra [3] => LeagueCommonMark ) |
commonmark.driver | MarkdownExtended |
docs.theme | docs |
docs.default_group | developer |
docs.show_dev_docs | true |
docs.show_app_docs | true |
docs.toc_file | _toc.ini |
docs.permitted_environments | Array ( [0] => development [1] => testing [2] => production ) |
application.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/application.php |
autoload.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/autoload.php |
config.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/config.php |
constants.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/constants.php |
database.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/database.php |
events.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/events.php |
hooks.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/hooks.php |
mimes.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/mimes.php |
profiler.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/profiler.php |
routes.php /var/www/vhosts/artiplayer.com/httpdocs/application/config/routes.php |
Base_Controller.php /var/www/vhosts/artiplayer.com/httpdocs/application/core/Base_Controller.php |
MY_Model.php /var/www/vhosts/artiplayer.com/httpdocs/application/core/MY_Model.php |
App_hooks.php /var/www/vhosts/artiplayer.com/httpdocs/application/hooks/App_hooks.php |
application_lang.php /var/www/vhosts/artiplayer.com/httpdocs/application/language/english/application_lang.php |
Profiler.php /var/www/vhosts/artiplayer.com/httpdocs/application/libraries/Profiler.php |
Base.php /var/www/vhosts/artiplayer.com/httpdocs/application/third_party/MX/Base.php |
Config.php /var/www/vhosts/artiplayer.com/httpdocs/application/third_party/MX/Config.php |
Controller.php /var/www/vhosts/artiplayer.com/httpdocs/application/third_party/MX/Controller.php |
Lang.php /var/www/vhosts/artiplayer.com/httpdocs/application/third_party/MX/Lang.php |
Loader.php /var/www/vhosts/artiplayer.com/httpdocs/application/third_party/MX/Loader.php |
Benchmark.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Benchmark.php |
CodeIgniter.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/CodeIgniter.php |
Common.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Common.php |
Config.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Config.php |
Controller.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Controller.php |
Hooks.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Hooks.php |
Input.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Input.php |
Lang.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Lang.php |
Loader.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Loader.php |
Log.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Log.php |
Model.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Model.php |
Output.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Output.php |
Router.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Router.php |
Security.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Security.php |
URI.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/URI.php |
Utf8.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/Utf8.php |
hash.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/compat/hash.php |
mbstring.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/compat/mbstring.php |
password.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/compat/password.php |
standard.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/core/compat/standard.php |
DB.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/database/DB.php |
DB_driver.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/database/DB_driver.php |
DB_query_builder.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/database/DB_query_builder.php |
DB_result.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/database/DB_result.php |
mysqli_driver.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/database/drivers/mysqli/mysqli_driver.php |
mysqli_result.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/database/drivers/mysqli/mysqli_result.php |
directory_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/helpers/directory_helper.php |
form_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/helpers/form_helper.php |
language_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/helpers/language_helper.php |
url_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/helpers/url_helper.php |
profiler_lang.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/language/english/profiler_lang.php |
Cache.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/libraries/Cache/Cache.php |
Cache_dummy.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/libraries/Cache/drivers/Cache_dummy.php |
Driver.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/libraries/Driver.php |
Session.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/libraries/Session/Session.php |
Session_driver.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/libraries/Session/Session_driver.php |
Session_database_driver.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/ci3/libraries/Session/drivers/Session_database_driver.php |
BF_Lang.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/core/BF_Lang.php |
BF_Loader.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/core/BF_Loader.php |
BF_Model.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/core/BF_Model.php |
BF_Router.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/core/BF_Router.php |
BF_Security.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/core/BF_Security.php |
BF_directory_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/helpers/BF_directory_helper.php |
BF_form_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/helpers/BF_form_helper.php |
application_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/helpers/application_helper.php |
config_file_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/helpers/config_file_helper.php |
markdown_extended_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/helpers/markdown_extended_helper.php |
markdown_helper.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/helpers/markdown_helper.php |
Assets.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/Assets.php |
CommonMark.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/CommonMark.php |
CommonMarkDriver.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/CommonMark/CommonMarkDriver.php |
CommonMark_MarkdownExtended.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/CommonMark/drivers/CommonMark_MarkdownExtended.php |
Console.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/Console.php |
Events.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/Events.php |
Modules.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/Modules.php |
Route.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/Route.php |
Template.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/libraries/Template.php |
docs.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/docs/config/docs.php |
routes.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/docs/config/routes.php |
Docs.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/docs/controllers/Docs.php |
docs_lang.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/docs/language/english/docs_lang.php |
_sidebar.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/docs/views/_sidebar.php |
index.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/docs/views/index.php |
Settings_lib.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/settings/libraries/Settings_lib.php |
Settings_model.php /var/www/vhosts/artiplayer.com/httpdocs/bonfire/modules/settings/models/Settings_model.php |
index.php index.php |
index.php themes/docs/index.php |