小编B M*_*Mac的帖子

不要JIT和非JIT启用的解释器最终生成机器代码

好的,我已经阅读了几个关于JIT和非JIT启用的解释器之间的差异的讨论,以及为什么JIT通常会提高性能.

但是,我的问题是:

最终,非JIT启用的解释器是否必须将字节码(逐行)转换为要执行的机器/本机代码,就像JIT编译器一样?我已经看到过它的帖子和教科书,以及说它没有的帖子.后一个参数是解释器/ JVM直接执行此字节码而不与机器/本机代码交互.

如果非JIT解释器确实将每一行转换为机器代码,那么JIT的主要好处似乎是......

  1. 缓存字节码的所有(正常JIT)或经常遇到(热点/自适应优化)部分的智能,以便每次都不需要机器代码编译步骤.

  2. 任何优化JIT编译器都可以将字节码转换为机器代码.

那是准确的吗?在通过非JIT和JIT启用的解释器将字节码转换为机器代码之间似乎没有什么区别(除了可能的优化,或者可能是逐行的JITting块).

提前致谢.

interpreter jit jvm native

7
推荐指数
1
解决办法
333
查看次数

我应该走多远才能避免在课堂上避免使用内部的getter/setter

我有更多的"多少是太多"的问题.我有一个Java类,它定义了几个外部类(大约30个)使用的getter/setter.但是,Java类本身也需要在某些情况下使用这些变量.

我理解使用成员​​字段而不是类中的getter方法的概念,但在这种情况下,getter执行一个函数(取消屏蔽一个特定的整数)来创建要返回的值.

所以从性能和内存减少的角度来看,对于需要这些值的类中的少数调用,我很好奇我是否应该......

一个.只需打电话给吸气剂

湾 除了我需要整个班级的价值观,就像取消吸气器一样,取消屏蔽

C.创建变量来保存这些值,通过在启动时调用所有getter来加载它们,并在类中使用它们(30个左右的整数可能不是一个严重的内存风险,但我还需要添加到我的代码中来保存这些如果用户设置新值,则更新...因为值已更新并被屏蔽).

任何想法都表示赞赏!

methods getter field members

2
推荐指数
1
解决办法
134
查看次数

Android SimpleCursorAdapter - 限制ListView结果

我提前道歉,因为我离开了笔记本电脑并且无法生成任何代码示例,但希望我能够清楚地回答我的问题.我有一个由sqlite db支持的ListView(通过SimpleCursorAdapter).我正在尝试实现功能,因此列表一次只显示db查询中的某些元素.我通过在onCreate中加载db中的所有数据来完成此操作,并在启动列表时使用首选的元素#覆盖SimpleCursorAdapter的getCount方法.我还有一个按钮,可以将更多元素加载到列表中.这是通过更新getCount应返回的计数来完成的.

这在添加更多listview行时工作正常,但是在单击按钮后,我看到列表中的内容出现了奇怪的行为.我看到重复的列表元素和不正确的元素内容,这些都是在我的bindview方法中设置的.我假设这与覆盖getCount方法有关(我确定你是一个更好的方法来执行"Load Next 25"功能),因为当我只显示整个db结果集时我没有看到这种行为并且不要覆盖该方法.

我想我的问题是,当你处理SimpleCursorAdapter时,可以覆盖getCount方法导致bindview方法中的有趣行为吗?使用支持ListView的db查询结果实现此类功能的最佳方法是什么?

在此先感谢...如果需要,我可以在明天回到笔记本电脑时提供代码片段.

android listview simplecursoradapter

2
推荐指数
1
解决办法
1629
查看次数