bytecode相关内容

生成“你好,世界!"带有 Java ASM 库的类

我已经开始为我正在处理的编译器项目使用 ASM API.但是,我发现文档在很多地方对于新手来说都不太清楚,我认为有一个很好的实例来生成一个简单地打印“Hello, World!"的类.将是一个很好的例子. 目前,我可以使用 main() 生成一个类(使用 ClassWriter、ClassVisitor 和 MethodVisitor 类),但我似乎无法弄清楚如何生成 main 的主体.谁能 ..
发布时间:2022-01-04 21:53:47 Java开发

Python中的`goto`

我必须在 Python 中使用 goto.我找到了 entrians goto 但我的 Python 实现(Mac 上的 CPython 2.7.1)没有这个模块,所以它似乎不是便携式的.它至少应该适用于所有支持 CPython 字节码的 Python 实现(特别是我关心 CPython 和 PyPy).然后是这个相关问题,以及cdjc 的 goto.以及下面的答案给出的那些. 我可以手动构 ..
发布时间:2022-01-04 21:50:22 Python

导入中python编译文件的优先级是什么?

Python 文件被编译为字节码 (*.pyc). 使用 Cython,您可以将它们编译为机器代码(Linux 中的 *.so). 如果两个文件在同一个文件夹下,同名下它们之间的优先级是什么? 是否有一种自动方法可以确保使用 *.so 文件而不是 *.pyc 文件?或者您必须在代码中明确执行(重命名等)? 解决方案 Python 将首先加载 .so 文件.请参阅这个问题以 ..
发布时间:2022-01-04 21:42:32 Python

Java:在运行时从同一 JVM 中获取类的字节码

相关:有没有办法在运行时获取类的字节码? 我正在为 Clojure 添加持久性,我终于可以添加函数了.在 Clojure 中,函数被字节编译成具有 invoke 方法(以及其他方法)的类.这样,功能是一流的.为了使这些持久化,我需要序列化和反序列化这些类.如何在无法访问 .class 文件的情况下获取类的字节码? 如果我弄错了,请纠正我,但使用代理需要生成一个单独的虚拟机,代理连接到第 ..
发布时间:2022-01-02 22:49:21 Java开发

如何静态识别 JAR 中缺少的方法(二进制兼容性)

我想验证 2 个 JAR 之间的二进制兼容性. 遵循此答案中的建议 我使用了 jboss tattletale 但它只能找到丢失的类. 如何查找方法是否丢失?有可能吗? 例如 “Depends - on"类 Foo 依赖于 Bar(像许多其他中产阶级工人一样) import org.overlyusedclassnames.Bar公共课 Foo{public void s ..
发布时间:2022-01-01 17:00:50 Java开发

将所有内容保存在单个 lua 字节码块中?

我已将 lua 与字节码块一起嵌入到用 C 编写的项目中.现在,当我通过添加 .lua 文件扩展我的 lua 代码库时,有没有办法将这些代码保存在单个字节码块中? (我知道如何加载多个字节码块.但是让它加载单个块然后忘记粘合代码似乎很舒服.) 我尝试使用文本包含,但在 Lua 中似乎没有这个关键字."Require" 和 "dofile" 在运行时查看文件,因此运行 "lua -b . ..
发布时间:2021-12-30 20:50:46 其他开发

是否可以更改 Lua 字节码中的字符串(内容和大小)以使其仍然正确?

是否可以更改 Lua 字节码中的字符串(内容和大小)以使其仍然正确?它是关于在 Lua 字节码中翻译字符串.当然,并非每种语言的每个单词的大小都相同... 解决方案 是的,前提是您知道自己在做什么.字符串以其存储为 int 的大小作为前缀.该 int 的大小和字节序取决于平台.但是为什么要编辑字节码呢?你失去了来源吗? ..
发布时间:2021-12-30 20:31:11 其他开发

Lua 的字节码规范

谁能告诉我在哪里可以找到 Lua 的字节码规范?我已经搜索了 15 分钟,但我找不到任何内容. 解决方案 也许 简洁的介绍到 Lua 5.1 VM 说明 包含您要查找的内容? 还有一张Lua 5.0指令集表(图5)在: Ierusalimschy, R.;菲格雷多,L. H.;Celes, W. (2005),“Lua 5.0 的实现",J.环球公司.科学. 11 (7): 1 ..
发布时间:2021-12-30 20:18:21 其他开发

编译lua代码,存储字节码然后加载执行

我正在尝试编译一个调用一些导出函数的 lua 脚本,将生成的字节码保存到一个文件中,然后加载这个字节码并执行它,但我还没有找到任何关于如何执行此操作的示例.有没有关于如何做到这一点的例子?我该怎么做? 编辑:我正在使用 Lua + Luabind (C++) 解决方案 这一切都很简单. 首先,您加载 Lua 脚本, 不执行它.是否已将 Lua 状态与导出的函数连接起来并不重要; ..
发布时间:2021-12-30 19:59:10 C/C++开发

反编译 Lua 字节码的最佳工具?

我真的很难找到一个好的 Lua 字节码反编译器.我正在尝试反编译我在游戏中找到的一些脚本文件,但它们似乎已编译,但似乎无法解码.反编译 Lua 二进制文件的最佳工具是什么? 解决方案 看起来 LuaDec 本身是最后一个为 Lua 5.0.2 更新.针对 Lua 5.1.x 字节码的新版本已发布为 LuaDec51.wiki 始终是开始寻找 f3lix 提到的资源的好地方.邮件列表也是提问 ..
发布时间:2021-12-30 19:58:29 其他开发

未使用的导入和对象是否会影响性能

我有一个疑问,Java 代码中未使用的导入和未使用的对象是否会对性能产生任何影响? 假设一个对象被初始化并且从未使用过,会发生什么?未使用的进口的成本是多少? 解决方案 这是一个很常见的问题. 与大多数性能问题一样,最好的方法是编写最清晰、最简单的代码,因为这可以提高代码的可维护性,并有助于确保即使在更改后也能正常运行.(聪明的/迟钝的/不必要的冗长的代码一开始可以运行得很快, ..
发布时间:2021-12-25 19:29:33 Java开发

什么是字节码缓存,如何在 PHP 中使用?

我在网上搜索并了解到可以编译 PHP 代码以提高性能.但是怎么做呢?我可以编译面向过程和面向对象的 PHP 代码吗? 解决方案 基本思路,执行PHP脚本时分两步: 首先:以纯文本形式编写的 PHP 代码被编译为操作码 然后:执行那些操作码. 当你有一个 PHP 脚本时,只要不修改,操作码永远是一样的;因此,每次执行该脚本时都进行编译阶段是一种 CPU 时间的浪费. 为了 ..
发布时间:2021-12-20 11:33:05 PHP

本机代码、机器代码和汇编代码有什么区别?

我对 .NET 语言上下文中的机器代码和本机代码感到困惑. 它们之间有什么区别?它们是一样的吗? 解决方案 这些术语确实有点令人困惑,因为它们有时使用不一致. 机器代码:这是定义最明确的代码.它是使用处理器(执行实际工作的物理金属片)理解并直接执行的字节码指令的代码.在您的机器可以执行之前,所有其他代码必须被翻译或转换为机器代码. 本机代码:该术语有时用于表示机器代码(见 ..
发布时间:2021-12-18 09:12:13 C#/.NET

Gradle sourceCompatibility 对子项目没有影响

我的机器上安装了 Java 6 和 7.Gradle 使用 1.7(使用 gradle -v 检查).但是我需要编译我的代码以与 Java 1.6 兼容.据我了解文档,我可以使用 sourceCompatibility 属性来执行此操作(间接使用默认为 sourceCompatibility 的 targetCompatibility). 所以我在我的构建文件中添加了以下行(在根级别,而不是 ..
发布时间:2021-12-15 10:54:09 Java开发

创建了多少对象

我正在讨论 Java 中 String 和 StringBuffer 的用法.这两个示例中的每一个都创建了多少个对象? 例 1: String s = "a";s = s + "b";s = s + "c"; 例 2: StringBuilder sb = new StringBuilder("a");sb.append("b");sb.append("c"); 在我看来,Ex 1 ..
发布时间:2021-12-11 19:54:44 Java开发

Scala 特征如何编译成 Java 字节码?

我使用 Scala 已经有一段时间了,我知道 trait 可以充当接口和抽象类的 Scala 等价物.trait 究竟是如何编译成 Java 字节码的? 我发现了一些简短的解释,这些特征在可能的情况下与 Java 接口完全一样编译,否则与附加类接口.然而,我仍然不明白,Scala 是如何实现类线性化的,这是 Java 中没有的特性. 是否有很好的来源解释特征如何编译为 Java 字节码 ..
发布时间:2021-12-07 13:14:40 其他开发

为什么全局解释器锁?

Python 的全局解释器锁的作用究竟是什么?其他编译为字节码的语言是否采用类似的机制? 解决方案 一般来说,对于任何线程安全问题,您都需要使用锁来保护内部数据结构.这可以通过不同的粒度级别来完成. 您可以使用细粒度锁,其中每个单独的结构都有自己的锁. 您可以使用粗粒度锁,其中一个锁可以保护一切(GIL 方法). 每种方法各有利弊.细粒度锁定允许更大的并行度 - 两个线程 ..
发布时间:2021-12-06 11:42:50 Python

Python的基本优化模式有什么用?(蟒蛇-O)

Python 有一个标志 -O,你可以用它来执行解释器.该选项将生成“优化的"字节码(写入 .pyo 文件),并给出两次,它将丢弃文档字符串.来自 Python 的手册页: -O 打开基本优化.这会更改文件扩展名用于从 .pyc 到 .pyo 的编译(字节码)文件.两次给予,导致文档字符串被丢弃. 在我看来,此选项的两个主要功能是: 去除所有断言语句.这将防御损坏的程序状态以换取 ..
发布时间:2021-11-30 11:26:00 Python

编译为字节码的动机是什么?

我正在研究我自己的玩具编程语言.现在我正在解释来自 AST 的源语言,我想知道编译为字节码然后解释它可以为我提供什么优势. 现在我想到了三件事: 数百次遍历语法树可能比运行数组中的指令慢,特别是如果数组支持 O(1) 随机访问(即向上和向下跳转 10 条指令). 在类型化执行环境中,我有一些运行时成本,因为我的 AST 是类型化的,而且我一直在遍历它(即,我有 10 种类型的节点,我 ..
发布时间:2021-11-26 17:52:15 其他开发