From b19a203595b69067b3665ee179fb4b58cf5a014c Mon Sep 17 00:00:00 2001 From: Ted Wood Date: Sat, 5 Jan 2013 16:02:43 -0800 Subject: utilize static function variables in Common::log_message() to "cache" log threshold and Log library instance to reduce function calls --- system/core/Common.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'system/core') diff --git a/system/core/Common.php b/system/core/Common.php index a4b4f2b3e..d494caf80 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -413,14 +413,23 @@ if ( ! function_exists('log_message')) */ function log_message($level = 'error', $message, $php_error = FALSE) { - static $_log; + static $_log, $_log_threshold; + + if ($_log_threshold === NULL) + { + $_log_threshold = config_item('log_threshold'); + } - if (config_item('log_threshold') === 0) + if ($_log_threshold === 0) { return; } - $_log =& load_class('Log', 'core'); + if ($_log === NULL) + { + $_log =& load_class('Log', 'core'); + } + $_log->write_log($level, $message, $php_error); } } -- cgit v1.2.3-24-g4f1b From 4c22364e12268961aac3ba0f2a4b60a066a16bcd Mon Sep 17 00:00:00 2001 From: Ted Wood Date: Sat, 5 Jan 2013 16:50:31 -0800 Subject: Slight performance improvement by moving some class property initialization to the class property declarations rather than setting them in the constructor. Subclasses can always override in their own constructor if they wish to. Is there a reason why it was done the way it was done? A policy that I am not aware of? --- system/core/Loader.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'system/core') diff --git a/system/core/Loader.php b/system/core/Loader.php index 5e6c40050..9bfddc15a 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -52,28 +52,28 @@ class CI_Loader { * * @var array */ - protected $_ci_view_paths = array(); + protected $_ci_view_paths = array(VIEWPATH => TRUE); /** * List of paths to load libraries from * * @var array */ - protected $_ci_library_paths = array(); + protected $_ci_library_paths = array(APPPATH, BASEPATH); /** * List of paths to load models from * * @var array */ - protected $_ci_model_paths = array(); + protected $_ci_model_paths = array(APPPATH); /** * List of paths to load helpers from * * @var array */ - protected $_ci_helper_paths = array(); + protected $_ci_helper_paths = array(APPPATH, BASEPATH); /** * List of loaded base classes @@ -137,10 +137,6 @@ class CI_Loader { public function __construct() { $this->_ci_ob_level = ob_get_level(); - $this->_ci_library_paths = array(APPPATH, BASEPATH); - $this->_ci_helper_paths = array(APPPATH, BASEPATH); - $this->_ci_model_paths = array(APPPATH); - $this->_ci_view_paths = array(VIEWPATH => TRUE); log_message('debug', 'Loader Class Initialized'); } -- cgit v1.2.3-24-g4f1b