コードの最適化
Moduleは実行されるたびに一意の変数を生成する.Blockと大域的に一意の変数を使った関数を書くことで,変数生成ステップが省略されるため,反復の実行がスピードアップする.
大域的に一意の変数を持つBlockを使うためModuleを削除する.
| In[1]:= | ![]() X |
非アクティブな関数を生成する.
| In[2]:= | ![]() X |
| Out[2]= |
変換を適用する.
| In[3]:= | X |
| Out[3]= |
このコードと変換されたコードをアクティブにし,fModuleとfBlockの定義を作成する.
| In[4]:= | X |
ランダムなテスト値の値を比較する.
| In[5]:= | X |
| Out[5]= |
テスト値の大きい集合での所要時間を比較すると,2.5倍スピードアップしていることが分かる.
| In[6]:= | ![]() X |
| Out[6]= |


