system/core/Loader.php の 914 行目あたりで、Codeigniter はライブラリがロードされているかどうかのチェックを実行し、再度ロードすることはありません。ただし、これらのチェックはメモリも消費します。ライブラリをロードするのに最適な方法を結論付けるために、ちょっとしたベンチマーク (試行ごとにメモリをクリーニングする) を行いました。結論は次のとおりです。
通常どおりライブラリをロードし$this->load...
、Codeigniter に処理させるだけです。
基準:
$this->load->library('session');
Codeigniter セッション クラスを最初にロードした後、ライブラリをロードしたり、まだロードされていないかどうかをチェックしたりするさまざまな方法をテストしました。これらの各行は、20 倍ずつ個別に実行されました。
メモリ消費テスト (速度ではありません!)
if(!$this->load->is_loaded('session')) $this->load->library('session');
これは48.256 バイトを消費しました
if(!class_exists('ci_session')) $this->load->library('session');
これにより39.824 バイトが消費されました
if(!isset($this->session)) $this->load->library('session');
これにより31.904 バイトが消費されました
$this->load->library('session');
これは21.790 バイトを消費しました
もう一度テストを繰り返した後、結果は同じだったので、それは関係があるのかもしれません! 間違っていたらコメントください!
2014.07.08. Codeigniter 2.2.0 を使用した更新: テストは 1000 回の反復を使用して繰り返されました (以前のように 20 回ではありません)。結果は同じままです。メモリ消費は次のとおりでした: 2128b、1856b、1688b、1456b
@Tim Dev はコメントで、このベンチマークは最速のコードを示す必要はなく、メモリ消費量が最も少ないコードのみを示していると述べています。