数式エバリュエータは実行の都度数式の構文を解析して評価するインタープリタ ですので、数式をハードコードしたプログラムよりは実行速度が 遅くなるのはやむを得ません。以下の式について、ハードコード したものと数式エバリュエータを使った場合とで速度を測定しました。
(ハードコード)
double d=Math.sin(0.5)+1.5;
(数式エバリュエータ)
double d=formulaEvaluator.dEvaluate("sin(0.5)+1.5");
100,000回実行した結果は以下のとおりで、数式エバリュエータは約100倍の 処理時間がかかっていることがわかります。
処理 | 実行時間(ミリセカンド) |
---|---|
ハードコード | 16 |
数式エバリュエータ | 1672 |