【问题标题】:how the JIT interpretator compiles heavy computing parts of code in androidJIT 解释器如何在 android 中编译繁重的计算部分代码
【发布时间】:2014-06-04 02:10:35
【问题描述】:

我是 Android 新手,我正在阅读有关 Dalvik VM 的信息。在 Android 平台中,所有应用程序都是 .dex 格式。现在,当我们启动具有大量计算代码的应用程序时,JIT 解释器将获取一条指令,对其进行编译并执行该指令,但如果它遇到大量计算代码,它将完成部分代码并编译它本机语言并保存已编译的代码以供将来参考,以便下次直接使用已编译的代码。
现在我的问题是,编译代码将永远保留还是会一直保留到应用程序运行时运行,并且当应用程序将来重新启动时,它将再次编译该部分代码。

【问题讨论】:

  • 主题或多或少:Android 现在引入了一个 beta 阶段(但运行良好)的新运行时,称为 Android 运行时 (ART)。它会提前编译 dex 代码并在安装应用程序时存储它。 More information.
  • 是的,我知道他们现在已经搬到 ART 了,但我仍然想知道我的问题的答案。

标签: android jit dalvik


【解决方案1】:

不保留 JIT 编译的代码。当进程被杀死时,JIT 代码缓存被释放。重新启动应用程序时重新完成编译。

注意这是进程的死亡。如果应用程序只是因为您切换到另一个应用程序而进入后台,那么什么都不会消失。

【讨论】:

  • 但我在我的一部手机中看到,他使用了 5-6 个应用程序,在他关闭这些应用程序后,他使用 android 手机中的应用程序向我展示了缓存内容......是的我记得...这就是为什么我在这里问这个问题,因为之前我曾经认为,当应用程序消失时,RAM 中与该应用程序相关的所有数据也会被释放。
  • 因为我不在那里,所以我无法真正谈论你所展示的内容。所有应用程序都有一个可以从应用程序设置中清除的数据缓存,但该缓存不包括 JIT 编译的代码。例如,日历将存储最近下载的有关即将发生的事件的信息。这样,即使您在超出网络范围的情况下重新启动手机,您仍然会收到通知。
  • 好的,如果我有其他事情,我会在这里发表评论,现在我支持你......
猜你喜欢
  • 2011-07-01
  • 2019-02-19
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 2010-12-02
  • 2015-03-23
相关资源
最近更新 更多