スタッフのブログです。個以上あるコメントは受け付けない設定になってます。)2009年08月14日ARM11のパフォーマンスモニタを利用した簡単な実行時間の計測方法ARM11のCP15にパフォーマンスモニタがあり、そのサイクルカウンタを利用して簡単にプログラムの2点間の時間を計測することができます。計測用の関数を手軽に使えるようにソースコードを一つのヘッダファイルにまとめてみました。ある関数を複数の方法で実装して、どちらが速いかを比較する場合に便利です。ソースコードカウンタの読み出しの時のオーバーヘッドを少なくするためインライン関数にしています。gccの拡張記法を使用しています。"pmon_arm11.h")最初にpmon_start_cycle_counter()を呼んでカウントをスタートさせます。その後は任意のところでpmon_read_cycle_counter()でサイクルカウンタを読み出し、その差分で時間を計ります。ライブラリなどを追加する必要がないので、Makefile等の変更が不要です。計測したい部分のソースファイルだけの変更で使えます。x;}注意事項ARM1136では特権モードでしか使用できません。これはサイクルカウンタのレジスタが特権モードでないと呼び書きできないためです。設定でユーザーモードでも使用できるようになります。mcr命令の修正が必要。64分周するモードでカウンタを使用していますが、それでも約8分半ほどで32bitのカウンタは一周していまします。最新コメント「最新トラックバック」は提供を終了しました。(2)タグクラウドABCadbaidlAndroidARMarmv7asmbinderbionicBootbuildbuildrootbuiltinbusyboxcccacheCELFcelfjpClangcortex-a8Cortex-A9cpuinfodalvikvmDebiandebuggerdDMAelcembeddedemulatorEventexeGCCFlashfpufroyogccGDBGingerbreadgoldfishIceCreamSandwichinitinitrdinterpreterJAVAjavacjavapjitK&Rkernelkeykzm-a9-dualKZM-A9-GTkzm-ca9-01LinarolinuxLLVMloglogcatltsimingwMIPSmultiarchndkneonnetinstallnfsnon-stopobjdumppartnerPARTNER-JetportingpowermanagementprintfpropertyPyMitepythonqemuQTQTextCodecrootstockrubysdServiceSHsimdsmpTCGtuninguartubootUbuntuuclibcUNIXUSBv8vlinkwakelockwirelessx86zygote計測QRコード京都マイクロコンピュータ。