†これは致命的な量だ。(((●コロコロッEthnaを使用してコードを書くと妙にDBコネクションが多いことに気がつく。普通に考えればgetDBを使用した時にはじめてコネクションが走るので、それほど多くはならないはずなのだが。これはpconnectを使用した方が良いと言うことか?(MySQLでpconnectを使用するとあっという間に昇天します)調べてみるといくつか問題点が発見できた。†Ethna_BackendのgetDBが発行されると、データベース接続が発生する。この中にconnectメソッドがあり、このときにデータベースに接続にいくわけだ。複数接続にいかない条件は'Ethna_backendインスタンスが共通化されている'ことだ。接続数がどんどん増えていく。ここはsingletonパターンで実装し直す方が良いと思われる。ActionとViewの橋渡し的な役割をするEthna_AppManager?。一つは利用するのだが、ここに落とし穴がある。Ethna_AppManager?のコンストラクタにはEthna_BackendのgetDBListメソッドが埋め込まれている。このgetDBListメソッドは何をしているかというと、'iniファイルに設定しているすべてのデータベースに接続'のだ。getDBを使用してはじめてコネクションが張られる印象だけ持っていても、AppManger?を設定した時点でコネクションが張られてしまう。初回はDBから取得しそれをキャッシュ。キャッシュが残っている内はキャッシュした内容を表示するような感じだったとしても、AppManger?を呼んだ時点でDB接続は行われてしまう。DB接続分のオーバーヘッドは必ず発生することになり、キャッシュプログラム自体の効果が著しく減少する。画像処理するプログラムや、IFrameなどで1ページに複数のプログラムが走っている時はもう目も当てられないぐらいだ。このgetDBList。削除してしまっても構わないと思われる。少なくともコンストラクタには必要ないはずだ。Project証券会社ランキング。