Questions tagged «bytecode»

“字节码”是虚拟机使用的操作码的统称。例如,JVM运行存储在.class文件中的字节码,而CPython解释器运行存储在.pyc文件中的字节码。

10
为什么2 *(i * i)比Java中的2 * i * i快?
以下Java程序平均需要0.50到0.55秒钟才能运行: public static void main(String[] args) { long startTime = System.nanoTime(); int n = 0; for (int i = 0; i < 1000000000; i++) { n += 2 * (i * i); } System.out.println((double) (System.nanoTime() - startTime) / 1000000000 + " s"); System.out.println("n = " + n); } 如果我更换 2 …


4
为什么Java类用空白行进行不同的编译?
我有以下Java课 public class HelloWorld { public static void main(String []args) { } } 当我编译该文件并在生成的类文件上运行sha256时,我得到 9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff HelloWorld.class 接下来,我修改了该类并添加了一个空白行,如下所示: public class HelloWorld { public static void main(String []args) { } } 再次,我在输出上运行了sha256,期望得到相同的结果,但是我得到了 11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f HelloWorld.class 我读过这篇TutorialsPoint文章: 仅包含空格(可能带有注释)的行被称为空白行,而Java完全忽略了它。 所以我的问题是,由于Java忽略空白行,两个程序的编译字节码为何不同? 即在该差HelloWorld.class一个0x03字节是由替换0x04字节。

8
Android的Java 7语言功能
只是想知道是否有人尝试过将新的Java 7语言功能用于Android?我知道Android会读取Java吐出的字节码并将其转换为dex。所以我想我的问题是它可以理解Java 7的字节码吗?
188 java  android  bytecode  java-7 

9
字节码功能在Java语言中不可用
当前(Java 6)中有您可以用Java字节码执行的,您无法在Java语言中执行的操作吗? 我知道两者都已经完成了Turing,所以将“可以做”理解为“可以更快/更好地做事,或者只是以其他方式做”。 我正在考虑invokedynamic无法使用Java生成额外的字节码,例如,除非特定的字节码用于将来的版本。
146 java  jvm  bytecode 

5
Java的虚拟机和CLR
作为对MSIL和Java字节码之间差异的问题的一种跟进?,Java虚拟机的工作方式与Java虚拟机的主要(主要)区别或相似之处是什么.NET Framework 公共语言运行库(CLR)是否有效? 另外,是 .NET框架 CLR是“虚拟机”还是不具有虚拟机的属性?

5
如何对.emacs.d目录中的所有内容进行字节编译?
我决定去看看Emacs,我非常喜欢它。现在,我正在使用Emacs入门工具包,该工具包提供了更好的默认设置以及一些对Emacs默认安装的不错的自定义设置。 我已经对其进行了一些自定义,并添加了诸如yasnippet,color-themes,unbound和其他内容。我已经建立了一个github存储库,其中保留了所有自定义项,以便可以从多个位置访问它们,或者万一发生问题而丢失了.emacs.d目录。 所有这些都非常好,但是有一个问题:Emacs大约需要1-2秒来加载。我可以用Mx字节编译文件将单个.el文件编译为.elc,并且可以工作。但是有很多.el文件,我想知道是否有一种方法可以用简单的命令或类似的东西来编译它们,从而加快Emacs的加载速度。我的Emacs并不总是打开的,我经常打开和关闭它,尤其是在将它设置为Total Commander中默认的edit命令编辑器以使其习惯之后(尤其是Windows xp)。 我的Emacs版本是22.3。是的,没有任何自定义的默认Emacs安装会立即启动。 我不确定在加载时首选哪个版本,通过Oo方式选择.el还是编译的.elc。 因此,是否存在一个elisp命令或Emacs命令行开关来使Emacs字节编译.emacs.d目录中的所有内容?

3
Scala中的模式匹配如何在字节码级别实现?
Scala中的模式匹配如何在字节码级别实现? 它像一系列if (x instanceof Foo)结构,还是其他?它对性能有何影响? 例如,给定以下代码(来自Scala By Example第46-48页),该方法的等效Java代码将如何显示eval? abstract class Expr case class Number(n: Int) extends Expr case class Sum(e1: Expr, e2: Expr) extends Expr def eval(e: Expr): Int = e match { case Number(x) => x case Sum(l, r) => eval(l) + eval(r) } PS我可以读取Java字节码,因此字节码表示形式对我来说已经足够了,但其他读者可能更清楚知道它看起来像Java代码一样好。 PPS《Scala中的编程》一书是否对此问题以及有关如何实现Scala的类似问题给出了答案?我已订购这本书,但尚未到货。

30
C ++性能与Java / C#
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它当前不接受新的答案或互动。 我的理解是C / C ++会生成在特定机器体系结构上运行的本机代码。相反,诸如Java和C#之类的语言在虚拟机之上运行,该虚拟机抽象出本机体系结构。从逻辑上讲,由于这一中间步骤,Java或C#似乎不可能达到C ++的速度,但是有人告诉我最新的编译器(“热点”)可以达到或什至超过此速度。 也许这更像是编译器问题,而不是语言问题,但是谁能用通俗的英语解释这些虚拟机语言中的一种比本地语言有更好的表现?
119 c#  java  c++  performance  bytecode 



19
CIL nop操作码的目的是什么?
我正在经历MSIL,并注意到MSIL中有很多nop指令。 MSDN文章说,如果对操作码进行了修补,它们将不采取任何措施,并被用于填充空间。在调试版本中使用的版本比发行版本更多。 我知道在汇编语言中会使用这些类型的语句来对齐后面的指令,但是为什么在MSIL中需要MSIL nop? (编者注:可接受的答案是关于机器代码NOP的,而不是问题最初询问的MSIL / CIL NOP。)
82 assembly  bytecode  cil 



3
为什么使用invokedynamic调用Java 8 lambda?
该invokedynamic指令用于帮助VM在运行时确定方法引用,而不是在编译时对其进行硬接线。 这对于动态语言非常有用,在动态语言中直到运行时才知道确切的方法和参数类型。但是Java lambda并非如此。它们被转换为带有定义明确的参数的静态方法。并且可以使用调用此方法invokestatic。 那么,invokedynamic对于lambda的需求是什么,尤其是在性能受到影响时?
69 java  lambda  jvm  java-8  bytecode 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.