« FEZ Dominoでマルチスレッドを動かす | トップページ | FEZ Domino Tips (2) - .Net Micro Frameworkでms単位の時間計測を行う »

FEZ Domino Tips (1) - プログラム実行を少し早くする方法

FEZ Dominoの販売がスイッチサイエンスさんで始まっていますが、Arduinoやmbedに比べるとサンプルコードやライブラリの使い方に関する解説が不足しています。ですので、備忘録も兼ねてDominoを触っている中で分かったことをTipsとして紹介していきます。体系化して書いていくというより、私が疑問に思ったことの順になりますのでその点はご容赦下さい。


プログラムの配置(Deploy)

VC++だとビルドにdebugとreleaseの二種類があり、releaseビルドの方がコードサイズが小さくなりかつ実行速度も上がります。FEZのチュートリアルではIDE(Visual Studio)のF5キーでプログラムをFEZに転送・実行するとありますが、F5はデバック開始キーですのでdebugビルドに相当するように思え、releaseビルドに相当するコードの転送方法ってないんだろうかと思っていました。

.NET Micro FrameworkのWhite Paperを読んでいたら、以下のように「ビルド→配置(deploy)」メニューを使ってプログラムの転送ができることが分かりました(こちらは転送だけで、実行は別途リセットを行う必要があります)。これだと早くなるかもです。

ProjectDeployment


実行速度のお試し

ループを使って大量の計算を行うサンプルプログラムで実行速度の違いを計ってみます。プログラム実行時間の表示にDebug.print()メソッドを使っているため、MFDeployを使って表示を行います。

(1) F5による転送(転送後、MFDeployで再度実行)

Matrix add (float)
End: 4150ms

Matrix add (ingeger)
End: 3908ms

Matrix add (float) with pointer
End: 6115ms

Simple add, mul and div
End: 6268ms

(2) ビルド→配置メニュー

Matrix add (float)
End: 3524ms

Matrix add (ingeger)
End: 3284ms

Matrix add (float) with pointer
End: 5490ms

Simple add, mul and div
End: 5022ms

上記の例では、(2)の方法だと、15%前後実行速度が上がりました。

« FEZ Dominoでマルチスレッドを動かす | トップページ | FEZ Domino Tips (2) - .Net Micro Frameworkでms単位の時間計測を行う »

dotNet MF」カテゴリの記事

コメント

この記事へのコメントは終了しました。

2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ