【发布时间】:2013-12-18 16:14:10
【问题描述】:
所以我正在尝试为 Android 编写一些低级代码,我主要担心的是我想避免 JIT 编译器(或其他任何东西)的所有优化。经过一些研究,最好的方法似乎是:
- 手工编写 Java 字节码
- 使用“dx”命令将其转换为 dex 文件
- 使用“dalvikvm”命令(通过 adb shell)在程序上运行它并指定“-Xverify:none -Xdexopt:none”参数
我的问题是:这实际上会避免所有优化吗? https://groups.google.com/forum/#!topic/android-platform/Y-pzP9z6xLw 之前的讨论让我不确定,我不能通过阅读文档 100% 说服自己。
非常感谢任何一种方式或其他方式的确认。
【问题讨论】:
-
你这样做的目的是什么?
-
你试过手动写字节码吗?你的意思是使用你自己的编译器?手动编写字节码几乎是不可能的。
-
你检查过 NDK 吗? developer.android.com/tools/sdk/ndk/index.html
-
@njzk2,我们的想法是确保以非常具体的方式对硬件施加压力,即填充数据/指令缓存,强制如此多的缓存未命中,如此多的分支等等。当然如此任何优化都会引入很多我想避免的未知数
-
@John 你可以使用 ASM,我是。在我自己的 Eclipse 构建器中这样做,当使用 Log.+ 方法时,您将在 logcat 中看到额外的 merhod 名称和行号,请参阅 github.com/pskink/AndroidLoggerBuilder
标签: android performance dalvik