FRK-RX62N (7) rxc vs gnurx (2) ― 2011年04月09日 09時46分38秒
確率で円周率を求めるモンテカルロ法を使って KPIT GNURX の Optimize と Library の違いによってオブジェクトのサイズや実行スピードがどのようになるか調べてみよう。
Optimize 設定はメニューの Build から KPIT GNURX [ELF] Tooolchain を選択し C/C++ タブの Optimization Type で決定する。
Library 設定はメニューの Build から KPIT GNURX [ELF] Tooolchain を選択し Library Generator タブの Select library で決定する。
結果をまとめたのが以下に示す表だ。
一方、Renesas 純正コンパイラはどうだろう?
設定は細かくできて speed と size でそれぞれ0~max まで指定できる。さらに、ライブラリの設定もあるのでこの辺でやめにしておく。
こうしてみてみると Kpit GNURX はよくできている。しかし、問題点もある。新しいデバイスの追加が Renesas 純正より遅くなってしまうことだ。当然、自分で追加してみようと思った。やってみてわかったことは Renesas 純正のヘッダーファイルが使えないことだ。それは、ビットフィールドの並びが異なるためで、KPIT のヘッダーは手作業で(おそらく)書き換えてある。新しいデバイスごとに自分でこの作業をする気にはなれないので Kpit のリリースを待つか RX をあきらめるしかないと思っている。
環境: KPIT GNURX v11.01 Windows Tool Chain (ELF)
Renesas C/C++ Compiler Package for RX Family V.1.00 Release 02
Optimize 設定はメニューの Build から KPIT GNURX [ELF] Tooolchain を選択し C/C++ タブの Optimization Type で決定する。
Library 設定はメニューの Build から KPIT GNURX [ELF] Tooolchain を選択し Library Generator タブの Select library で決定する。
結果をまとめたのが以下に示す表だ。
OptimizeLevel なし size speed both 単位 実行時間 11.72 6.85 6.60 7.03 秒 (Newlib ライブラリ) ObjectSize 11004 9644 21010 20850 bytes (Newlib ライブラリ) 実行時間 9.10 4.06 3.81 4.11 秒 (Optimized ライブラリ) ObjectSize 7932 6574 17926 17778 bytes (Optimized ライブラリ)Optimize は size を選択するのがバランスが取れているようだ。 Library は、さすがに名前のとおり Optimized Library がスピード、サイズ共にいい感じだ。これからは Optimized Library を使って Optimize に size を指定するのをデフォルトにしよう。
一方、Renesas 純正コンパイラはどうだろう?
設定は細かくできて speed と size でそれぞれ0~max まで指定できる。さらに、ライブラリの設定もあるのでこの辺でやめにしておく。
OptimizeLevel 0 1 2 max 実行時間 11.72 9.97 4.02 3.95 秒 (size 優先) ObjectSize 5738 5412 5014 5014 bytes (size 優先) 実行時間 11.74 9.99 4.12 4.00 秒 (speed 優先) ObjectSize 5738 5412 5032 5032 bytes (speed 優先)デフォルトで level2 なのでほぼ最強だろう。max にしてもスピード、サイズ共に変わらない。
こうしてみてみると Kpit GNURX はよくできている。しかし、問題点もある。新しいデバイスの追加が Renesas 純正より遅くなってしまうことだ。当然、自分で追加してみようと思った。やってみてわかったことは Renesas 純正のヘッダーファイルが使えないことだ。それは、ビットフィールドの並びが異なるためで、KPIT のヘッダーは手作業で(おそらく)書き換えてある。新しいデバイスごとに自分でこの作業をする気にはなれないので Kpit のリリースを待つか RX をあきらめるしかないと思っている。
環境: KPIT GNURX v11.01 Windows Tool Chain (ELF)
Renesas C/C++ Compiler Package for RX Family V.1.00 Release 02
コメント
トラックバック
このエントリのトラックバックURL: http://syslab.asablo.jp/blog/2011/04/09/5786254/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。