2009-04-01から1ヶ月間の記事一覧

ロジック高速化の処方箋 for OO言語

1) オブジェクトの生成(取得)回数を減らす。 1-1) 生成(取得)後、変更されることのないオブジェクトは一度だけ生成 (取得)する。 1-1-1) 複数のメソッドで利用され、そのオブジェクトの生成が 所属するクラスのプロパティに左右されない場合、 クラス(静的)…

OO言語とメモリ割当

「ヒープ領域」「スタック領域」といっても結局、物理メモリ上の領域に対して VM等で役割毎に適切なデータ構造を割当て、物理メモリ上の領域を分割し、 分割したメモリ領域をデータ構造毎に呼んでいるだけ、結局は同じ物理メモリ上。

処理速度と拡張性・保守性

優秀なエンジニアは拡張性・保守性と処理速度を上手く両立させます。 拡張性や保守性のために処理速度を犠牲にするエンジニアは優秀な エンジニアとは呼べません。

プログラミングの真髄

短いロジック(少ない手数)で、求める結果(=最大の効果)を得ること。 ロジックが短いとは、表面上の短さでなくそのロジックで行われる処理 の総量が少ないことを指します。 短いロジックはロジックの実行に要する時間が短い、即ち、処理速度が 速い。 何もし…

OO言語における変数のメモリ領域確保のタイミングと変数の寿命

細かいところは間違っているかもしれないが、おおよそ次のとおり。 静的言語はJava、動的言語はRubyを基準に記述しているので それ以外の言語では若干異なります。 1)クラスがメモリ上にロードされるとき 静的言語の場合、このタイミングでstatic変数(静的変…

OO言語における処理速度向上

RubyでもJavaでも留意しなければならない点はほぼ同じ。 手続き型言語と同じで一連のロジックの中で処理の重複をなくすのは当たり前である ことがそこそこ意識されているのに対して、オブジェクトの生成回数を減らすことは あまり意識されないことが多いよう…