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 で決定する。
Optimization Type

Library 設定はメニューの Build から KPIT GNURX [ELF] Tooolchain を選択し Library Generator タブの Select library で決定する。
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の入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
このブログのタイトルは?(syslab と記入してください)

コメント:

トラックバック

このエントリのトラックバックURL: http://syslab.asablo.jp/blog/2011/04/09/5786254/tb