日々の悩み

昨日(今日か?)、朝までがんばってコードをチューニングしてたおかげで、予定性能をギリギリでクリアするぐらいのエンジンを書くことができた。本当、「これが性能を重視した結果さ!!」と言わんばかりのコードで、ループアンローリングから始まり、小さい配列のプリミティブ化、インスタンス変数のローカル変数化、データフローをみながらの式の並び替えなどなど、へたれな高速化技法をだいぶ投入しました*1。足し算・引き算、掛け算、割り算、ロード・ストア命令(が入りそうなところ)などをピックアップして、やばそうなところから一つずつ命令を削っていくなんてこともやりましたよ。それで、30%ほど高速化したから許せるけど、もうやりたくない。
それでも、本当にこれで速くなってるかどうかは自信がありません。なぜなら、-serverオプションを付けないときは高速化し、付けたら逆に遅くなったってことが多々あったからです。これでは、環境ががらりと変わっただけで、実は最適化のせいで遅くなってたなんてことが起こりそうです。

*1:使用言語はJava