16/05/21 11:12:20.08 4qmWB+Wj.net
>>85
おーけい。
ある会社のインターンでの話なんだが
Google Chromeって名前のWebブラウザあるだろ?
あいつがメモリをバカ食いするのは当時でも有名でね。
どのモジュールがどのくらいメモリを食っていて、どれだけ無駄が出ているかってのを調べるために
コンパイラを改造する仕事を割り当てて貰ったんだ。
コンパイラを改造して、コンパイル時に適切なコードを差し込むことによって
Chrome自体のコードを改変せずにメモリの詳細な統計データを得ることが出来るようになる事が目的だった。
実際にはChromeじゃなくてオープンソースのChromiumの方だけどな。
果たして、それは上手く行かなかった。
というのも、オブジェクト間に参照のループがあったり
同じクラスから別の意味を持つクラスが派生してたりして
Chromium全体が密結合になっており、
「どのクラスのインスタンスがどれだけメモリを食っているか」という情報はあまり役に立たなかったんだ。
結論:オブジェクト指向設計を下手に導入すると、メンテナンス性が下がる