Caché&Ensemble 2010.1 RC その2
»
今回のバージョンには目玉というほど派手さがなく、目立ちませんが、非常に大きな変更があります。
しかも開発者の皆さんには、十分メリットがあります。
使っていただくと、顕著にわかるのが、クラスのコンパイル時間の高速化です。
もちろん、1つのクラスのコンパイルは、昨今の高速CPUを使うと、体感しにくいですが、複数数十個以上のクラスをまとめてコンパイルすると、2倍強早くコンパイルが終了します。
それで、今回何を変えたかということですが、
Cachéのオブジェクトモデルをデザインした当時、メソッド起動のオーバーヘッドが大きくクラス階層に基づく動的メソッド起動をあきらめ、各サブクラスは親クラスのメソッドを完全コピーして平準化した形で継承を実現していました。
この実装は、実行時の効率は良いのですが、柔軟性に欠け、クラス実体が肥大化しやすいものです。
そして、2,3年前にボトルネックとなっていたメソッド実行を高速化するオーバーホールが行われ、動的メソッド実行に変えても十分性能的に問題ないことが確認されました。
これを受けて、クラス階層の実装を動的なものに変更したわけです。
アプリケーションレベルではほとんど影響がない様にこの設計変更は注意深く行われましたので、既存のクラス実装は、この新しいオブジェクト実行方式でも従来と同様に動作すると思われますが、100%完全保証とはなかなかいかないのが、世の常です。
当然、動作確認は必要です。
私が手元で持っているクラスの一部は今の所、特に問題もなく、この新しい実装上で動作しています。
SpecialPR