对ARMv7体系结构的理解如何提高Java/Android代码的效率?

对ARMv7体系结构的理解如何提高Java/Android代码的效率?,android,jvm,armv7,instruction-set,Android,Jvm,Armv7,Instruction Set,我正在看很多视频,阅读一些关于RISC和CISC体系结构和总体的文章 据我有限的理解,RISC和CISC之间的一个主要区别是: 每个RISC指令大致转换为一个操作 CPU可以执行 知道这一点;和其他 RISC < /Cord>的特定特性:Android开发者认为哪些设计决定与传统java开发不同? 例如: 假设我想在结果列表中突出显示用户搜索词的多线程语法 一个想法是拥有一个大小为Runtime.getRuntime().availableProcessors()的池,池中的每个任务都处理数组中

我正在看很多视频,阅读一些关于
RISC
CISC
体系结构和总体的文章

据我有限的理解,
RISC
CISC
之间的一个主要区别是:

每个RISC指令大致转换为一个操作 CPU可以执行

知道这一点;和其他<代码> RISC < /Cord>的特定特性:Android开发者认为哪些设计决定与传统java开发不同? 例如:

假设我想在结果列表中突出显示用户搜索词的多线程语法

一个想法是拥有一个大小为
Runtime.getRuntime().availableProcessors()
的池,池中的每个任务都处理数组中的单个元素

我可以使用
OrderedSet
来维护顺序,方法是使列表中的每个元素都成为实现
compariable
的对象,并在
comparieto
中提供一些排序

我不是专家,所以我不能说这是在
CISC
CPU或某些AWS EC2实例上解决这个问题的好方法

我也在努力提高我的理解力,那么这在
RISC
处理器上仍然是一个好的设计吗?若否,原因为何?什么是更好的设计决策


<>代码> RISC < /COD>特定代码有哪些决定要通过提高性能来改进功能?还是新的
ARMv7
太类似了
CISC
使所有这些都变得毫无意义?

阅读不要对CISC、RISC、冯·诺依曼和哈佛以及其他你可能读到的术语感到激动。CISC和RISC之间的界限有点模糊。您应该清楚地看到,CISC在高级别上对每个操作执行多个操作—您可以使用内存操作数执行操作,例如在x86中。添加一些内存位置,一些值。这意味着必须读取内存位置,完成数学运算,然后再完成内存位置。想象一下,这是一个读、加、写三个高级操作。一个RISCy视图是执行加载,可能将一个立即数移到另一个寄存器中,进行加法,然后存储结果,获取多条指令,但通过处理器的指令速度更快,逻辑更少。就像计算机使用基于二进制的门而不是每个信号有10个状态的10进制逻辑一样。需要更多的门,但效率(和准确性)更高,这是有意义的。由于各种原因,CISC传统上是以某种方式进行微编码的(内部还有另一个更像risc的处理器,甚至更简单)。尽管一天结束时,你离这其中的大部分都很远,你正试图建立一个连接,但你陷入了预选择阶段。这并不意味着你不能编写更高效、性能更好的代码,但是,您只是触及了这个问题的表面,需要做更多的研究,特别是编译和反汇编,以了解在更改代码时工具对代码的作用。JAVA是一种抽象,它是自己的指令集,在运行时由虚拟机解释。(可以编译到目标,但通常不是)。因此,从定义上讲,这是一种低效和缓慢的行为。但这不是目的,目的是可移植性。编写一个程序,将其编译到虚拟机指令集,并在任何地方运行,windows、mac、linux等。阅读不要对CISC、RISC、冯·诺依曼和哈佛以及其他你可能读到的术语感到激动。CISC和RISC之间的界限有点模糊。您应该清楚地看到,CISC在高级别上对每个操作执行多个操作—您可以使用内存操作数执行操作,例如在x86中。添加一些内存位置,一些值。这意味着必须读取内存位置,完成数学运算,然后再完成内存位置。想象一下,这是一个读、加、写三个高级操作。一个RISCy视图是执行加载,可能将一个立即数移到另一个寄存器中,进行加法,然后存储结果,获取多条指令,但通过处理器的指令速度更快,逻辑更少。就像计算机使用基于二进制的门而不是每个信号有10个状态的10进制逻辑一样。需要更多的门,但效率(和准确性)更高,这是有意义的。由于各种原因,CISC传统上是以某种方式进行微编码的(内部还有另一个更像risc的处理器,甚至更简单)。尽管一天结束时,你离这其中的大部分都很远,你正试图建立一个连接,但你陷入了预选择阶段。这并不意味着你不能编写更高效、性能更好的代码,但是,您只是触及了这个问题的表面,需要做更多的研究,特别是编译和反汇编,以了解在更改代码时工具对代码的作用。JAVA是一种抽象,它是自己的指令集,在运行时由虚拟机解释。(可以编译到目标,但通常不是)。因此,从定义上讲,这是一种低效和缓慢的行为。但这不是目的,目的是可移植性。编写一个程序将其编译到虚拟机指令集,并在windows、mac、linux等任何地方运行。