私はNDK(jni)を使ってAndroidにいくつかのネイティブコードを書いていました。 gccコンパイラの最適化を無効にしたいと思います。 今のところAndroid.mkにLOCAL_CFLAGS += -O0
を追加していますが、動作しているかどうかはわかりません。ndk-buildのgcc最適化レベルを知る方法
私はこのようなループのオーバーヘッドをテストするためのいくつかのコードを書いた:
// gettime
for(int i = 0 ; i<10000;i++)
{
}
// gettime
時間差が、私はループがコンパイラによって削除されたことを確信しているということは小さすぎます。 i
を揮発性変数に変更できますが、コンパイラの最適化を正しくオフにしているかどうかをテストします。
gcc(ndk-build)で使用されている最適化レベルを知るにはどうすればよいですか?すべてのメッセージを取得するにはmake
を冗長に設定できますか?
ありがとうございます。
10K 'inc'sを提出あなたのApplication.mkに
を追加することは可能性が非常に高いです10kクロックサイクルで実行できます。それは「遅い」プロセッサでさえも_速く_です。 – Mat